C# 事件
阿新 • • 發佈:2020-10-20
程式碼Demo
namespace TestCore { public class Program { public static void Main(string[] args) { //例項化物件,第一次沒有觸發事件 EventTest e = new EventTest(); //例項化接收器物件 SubscriEvent v = new SubscriEvent(); //註冊事件 e.ChangeNum += newView CodeEventTest.NumManipulationHandler(v.printf); e.ChangeNum += new EventTest.NumManipulationHandler(v.printN); e.SetValue(7); e.SetValue(11); Console.WriteLine("hello word"); } } //釋出器類 public class EventTest { private int value;//定義委託 public delegate void NumManipulationHandler(); //定義事件 public event NumManipulationHandler ChangeNum; protected virtual void OnNumChanged() { if (ChangeNum != null) { //事件被觸發 ChangeNum(); }else { Console.WriteLine("event not fire"); } } public EventTest() { int n = 5; SetValue(n); } public void SetValue(int n) { if (value != n) { value = n; OnNumChanged(); } } } //訂閱器類 public class SubscriEvent { public void printf() { Console.WriteLine("event fire"); } public void printN() { Console.WriteLine("事件執行了"); } } }
執行結果: