標籤:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 事件委託1{ //總結 //1.事件(event)是基於委託(delegate)的,所以想要定義事件,首先要有1個委託類型,做支撐 //2.如果有了事件,要去尋找這個事件什麼時候被觸發,也就是這個事件什麼時候被調用了(事件名稱();) //3.事件觸發的時候,支撐這個事件的委託指向了哪個方法? public delegate void MyDel(); //定義1個無參無返回的委託類型,這裡是總結裡面的第1個點的後半部分!!! class OnOff { public event MyDel t; //1個基於MyDel委託類型的事件,這裡是總結裡面的第1個點的前半部分!!! /// <summary> /// 開啟開關 /// </summary> public void On() { t(); //觸發這個事件,這裡是總結裡面的第2個點!!! } /// <summary> /// 這裡應該算是事件的處理器 /// </summary> public void lightOn() { Console.WriteLine("燈亮了"); } } class Program { /// <summary> /// 主函數 /// </summary> /// <param name="args"></param> static void Main(string[] args) { OnOff o = new OnOff(); o.t += new MyDel(o.lightOn); //這裡是總結裡面的第3個點!!! Console.WriteLine("我要開啟開關了啊"); o.On(); //調用這個函數的時候會觸發t事件 Console.ReadLine(); } }}
【C#】事件,委託3點詳解