c# delegate ,event
时间:2017-07-08 18:35:38
收藏:0
阅读:359
首先说明,event其实也是一种delegate,为了区分,我们称一般的delegate为“plain delegate”。
写代码的过程中,经常会在delegate和event之间进行选择,以前也没仔细思考选择的原因,今天终于忍不住花了半天时间仔细琢磨了一下……好了,直接拿代码说话吧:
分析:
- plain delegate与event的关系类似于field与Property(实事上前者就是field,或者我们可以把event看成是一种特殊的Property)
- 正是由于1#,在使用上,plain delegate几乎没有任何限制,而event则有严格的限制(只能用在+=和-=的左边)
结论:
- event更面向对象一些。
- 当我们需要灵活时,直接使用plain delegate;反之,需要严格的控制时,使用event。
- 由于event不能使用赋值运算符,因此有时我们要求一个事件在任何时刻只能有一个响应方法时,我们使用plain delegate更为方便。
原文:http://www.cnblogs.com/Cpart/p/7137484.html
评论(0)