【C#】事件,委托3点详解
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(); } } }