// 定义委托 public delegate void NumberChangedEventHandler(int count);
// 定义事件发布者 public class Publishser { private int count; public NumberChangedEventHandler NumberChanged; // 声明委托变量 //public event NumberChangedEventHandler NumberChanged; // 声明一个事件
class Program { static void Main(string[] args) { Publishser pub = new Publishser(); Subscriber1 sub1 = new Subscriber1(); Subscriber2 sub2 = new Subscriber2(); Subscriber3 sub3 = new Subscriber3();
pub.NumberChanged += new GeneralEventHandler(sub1.OnNumberChanged); pub.NumberChanged += new GeneralEventHandler(sub2.OnNumberChanged); pub.NumberChanged += new GeneralEventHandler(sub3.OnNumberChanged); pub.DoSomething(); // 触发事件 } }
// 定义委托 public delegate string GeneralEventHandler();
// 定义事件发布者 public class Publishser { public event GeneralEventHandler NumberChanged; // 声明一个事件 public void DoSomething() { if (NumberChanged != null) { // 触发事件 string rtn = NumberChanged(); Console.WriteLine(rtn); // 打印返回的字符串,输出为Subscriber3 } } }
// 定义事件订阅者 public class Subscriber1 { public string OnNumberChanged() { return "Subscriber1"; } } public class Subscriber2 { /* 略,与上类似,返回Subscriber2*/ } public class Subscriber3 { /* 略,与上类似,返回Subscriber3*/ }