委托(delegate):
1、委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。
2、使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时,可以依次调用所有绑定的方法。
事件(Event):
Event封装了委托类型的变量,使得在类的内部,不管你声明它是public还是protected,它总是private
的。在类的外部,注册“+=”和注销“-=”的访问限定符与你在声明事件时使用的访问符相同。
使用方法:
委托关键字:delegate
1.声明一个委托 public delegate void TestEventHandler ();
2.定义一个委托类型的变量
3.给委托赋值(绑定方法) TestEventHandler test= 一个方法;(用匿名函数)(用Lamda表达式)
4.调用委托 test(); //结果:调用赋值给委托的方法
事件关键字:event
1. 声明一个委托 public delegate void TestEventHandler ()
2. 声明一个事件 public event TestEventHandler Test;
3. 封装一个调用该事件的方法(判断不为null的时候调用)
4. 绑定与取消绑定该方法(+=、-=)
5. 调用封装好的该事件的方法
.Net Framework的编码规范:
委托类型的名称都应该以EventHandler结束。
委托的原型定义:有一个void返回值,并接受两个输入参数:一个Object 类型,一个 EventArgs类型(或继承自EventArgs)。
事件的命名为 委托去掉 EventHandler之后剩余的部分。
继承自EventArgs的类型应该以EventArgs结尾。