1. 程式人生 > 實用技巧 >C# 事件

C# 事件

程式碼Demo

namespace TestCore
{
    public class Program
    {
        public static void Main(string[] args)
        {
            //例項化物件,第一次沒有觸發事件
            EventTest e = new EventTest();
            //例項化接收器物件
            SubscriEvent v = new SubscriEvent();
            //註冊事件
            e.ChangeNum += new
EventTest.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("事件執行了"); } } }
View Code

執行結果: