什么是事件?事件和委托的区别?_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 什么是事件?事件和委托的区别?

什么是事件?事件和委托的区别?

 2016/5/25 5:35:23  minfei  程序员俱乐部  我要评论(0)
  • 摘要:关于面试中涉及到的事件的问题,我们只需要抓住几个关键点就好了:事件是委托的封装,可以理解为一种特殊的委托。事件里面其实就两个方法(即add_event()和remove_event())和一个私有的委托变量,这两个方法里面分别是对这个私有的委托变量进行的合并和移除,当调用事件的+=时其实是调用的事件里面的add_event()方法,同样-=调用的是remove_event()方法。事件只能够从对象外部增加新的响应方法和删除已知的响应方法,而不能主动去触发事件和获取其他注册的响应方法等信息
  • 标签:事件 区别 什么

关于面试中涉及到的事件的问题,我们只需要抓住几个关键点就好了:

 

  1. 事件是委托的封装,可以理解为一种特殊的委托。
  2. 事件里面其实就两个方法(即add_event()和remove_event())和一个私有的委托变量,这两个方法里面分别是对这个私有的委托变量进行的合并和移除,当调用事件的+=时其实是调用的事件里面的add_event()方法,同样-=调用的是remove_event()方法。
  3. 事件只能够从对象外部增加新的响应方法和删除已知的响应方法,而不能主动去触发事件和获取其他注册的响应方法等信息。如果使用公有的delegate则不能做这些限制,也就是说事件对委托做了限制,使委托使用起来更加方便。也有人说事件是对委托的阉割,大概也是这个意思。

定义事件:

1 public delegate void MyStudyEvent(object sender, EventArgs e);
2 public class TestEvent
3 {
4     public event MyStudyEvent eMyStudyEvent;

5 } 

发表评论
用户名: 匿名