[C#] 纯文本查看 复制代码 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();
}
}
}
|