l 场景
主要实现以下功能:
掌握事件与委托,出版社发行刊物时候,触发或者发布事件onpublish,事件一旦触发,事件的订阅者会收到该报刊“xx,收到报刊”(其中的XX为事件发生时传递的参数值)。
l 实验方法
1. 在控制台应用程序程序中编写代码,项目名为EventTest。
1. 声明出版社class Publisherde事件发布者类,该类中包含报刊发行事件onpublish和委托publish()
2. 在class Publisherde进一步声明public void issue()发行刊物方法,触发事件。
3. 再声明calss Subscriber 事件订阅者类,该类提供一个事件处理方法——public void Receive()(收到刊物方法)。
4、在main方法中,调用issue(),触发并订阅事件。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EventTest { public delegate void MyDelegate(); public class Publisherde { public event MyDelegate publish; public void onpublish() { Console.WriteLine("发行报刊------------触发事件"); } public void issue() { if (publish != null) { publish(); } } } class Subscriber { public void Receive() //事件处理方法 { Console.WriteLine("zxy收到报刊--------响应时间,执行事件处理函数"); } } class Program { static void Main(string[] args) { Subscriber ss = new Subscriber(); Publisherde pub = new Publisherde(); MyDelegate md = new MyDelegate(pub.onpublish); MyDelegate md1 = new MyDelegate(ss.Receive); md = md + md1; pub.publish += md; pub.issue(); Console.Read(); } } }