C#基础备忘12-事件
时间:2010-12-28 来源:金山崟霸
2. 自定义事件的步骤:
1. 委托声明:事件和事件的处理程序必须有相同的签名和返回类型。都通过对应的委托类型来描述。
2. 事件处理程序声明:在事件被触发后执行的方法。
3. 事件声明:在事件发布者类中声明保存并调用事件处理程序。
4. 订阅事件:将事件处理程序与事件连接起来。
5. 编写触发事件的代码:在发布者类中编写代码触发事件导致订阅此事件的事件处理程序被调用。
3. 声明事件时需要委托的名字,语法为: public event DelegateName EventName; 事件与委托的行为十分相似,原因是事件其实是对委托的封装,事件中包含一个私有的委托变量,提供对它的私有控制,并对外界提供了有限的操作方式 ,这样用户代码就不可以对这个委托进行可能会破坏面向对象封装性的操作了。 += 和 -= 是事件唯一允许的运算符 ,它们分别用来对事件进行添加 和删除 事件处理程序。
4. 注意:与委托不同,事件是一个类的成员 ,而非是类型。事件是某个特定类型中的一种成员,它允许它所在的类型(或者类型的实例)在某些特定事情发生的时候通知其他对象。由于事件是成员,所以不可以使用对象创建表达式 (new) 来创建它的对象,且事件必须声明在类或结构中,另外:事件成员被隐式自动初始化为 null 。
5. 触发事件看起来与调用方法类似。使用事件名称,参数列表包含在圆括号中。参数列表必须匹配事件的委托类型。
6. 为事件添加事件处理程序时,处理程序必须和委托类型拥有相同的返回类型和签名 。通过 += 运算符来为事件添加处理程序。事件处理程序可以是以下任何一种:
实例方法
静态方法
匿名方法
Lambda 表达式
如果大家喜欢我的文章,请点击“推荐”,谢谢!