事件模型的五个组成部分
1、事件拥有者(event source ,对象)
2、事件成员(event 成员)
3、事件响应者(event subsriber,对象)
4、事件处理器(event handler ,方法成员或者委托)---本质上是一个回调方法
5、事件订阅-----------把事件处理器和事件关联在一起,本质上是一种以委托为基础的约定。
注意
1、事件处理器是方法成员
2、挂接事件处理器的时候,可以使用委托实例,也可以直接使用方法名字。
3、事件处理器对事件的订阅不是随意。匹配与否由声明事件的委托类型来检测。
4、事件可以同步调用也可以异步调用
public static void Main(string[] args) { Timer timer = new Timer();//事件拥有者闹钟 Boy boy = new();//事件响应者我 timer.Interval = 1000;//事件触发者 timer.Elapsed += boy.Action;//订阅 先写这个,这时候boy.Action方法还未生成,鼠标放在boy.Action然后ctrl+.在类的内部自动生成方法。原理是事件处理器和事件有共同的签名。我们利用vs的自动功能快速生成方法 timer.Start(); Console.ReadLine();//让界面停在那边 } class Boy { //事件处理器 internal void Action(object sender, ElapsedEventArgs e) { Console.WriteLine("起床");// } }