一,简介
1,事件声明在一个类中
2,它需要委托类型的名称,任何附加到事件(如注册)的处理程序都必须与委托类型的签名和返回值类型匹配
3,它声明为public,这样其他类和结构可以在它上面注册事件处理程序
4,不能使用队形创建表达式(new表达式)来创建它的对象
二,声明
我们可以通过使用逗号分隔的列表在一个声明语句中声明一个以上的事件。
我们还可以使用static关键字让事件变成静态的。
三,触发事件
1,在触发事件之前和null进行比较,从而查看是否包含事件处理程序,如果事件是null,则表示没有,不能执行。
2.触发事件的语法与调用方法一样
(1)使用事件名称,后面跟的参数列表包含在圆括号中;
(2)参数列表必须与事件的委托类型相匹配。
四,举一列列子
class Incrementer
{
public event EventHandler CountedADozen; //声明事件
void DoCount( object source, EventArgs args )
{
for( int I=1 , I < 100 ; I++ )
if(I % 12 == 0 )
if(CountedADozen != null ) //确认有方法可以执行
CountedADozen(source, args); //触发事件
}
}
五,事件访问器
+= 和 -= 运算符是事件允许的唯一运算符。然而,我们可以修改这些运算符的行为,并且使用它们时可以让事件执行任何我么希望的自己定义代码。
要改变着两个运算符的操作,我们为事件定义事件访问器/
1,有两个访问器:add 和 remove
2,声明事件的访问器看上去和声明一个属性差不多。
3,事件访问器表现为void方法,也就是不能使用包含返回值的return语句。