static void Main(string[] args) { Publishser pub = new Publishser(); Subscriber sub = new Subscriber(); pub.NumberChanged += new NumberChangedEventHandler(sub.OnNumberChanged); pub.DoSomething(); // 应该通过DoSomething()来触发事件 pub.NumberChanged(100); // 但可以被这样直接调用,对委托变量的不恰当使用 }
/// <summary> /// 发布-订阅 /// </summary> void publishser() { var kettle = new Kettle(); kettle.TurnOn(); return; var publishser = new Publishser(); var subscriber = new Subscriber(); publishser.NumberChanged += subscriber.OnNumberChanged; publishser.DoSomething(); }