黑马程序员技术交流社区
标题:
委托和事件?
[打印本页]
作者:
徐宏伟
时间:
2012-9-6 10:07
标题:
委托和事件?
1、委托是一个类型;
2、委托是一个容器;
3、委托可以作为参数;
4、委托也可以作为返回值;
但是委托操作的时候存在不安全问题;于是就出现了事件,那么事件的本质是什么?事件和委托之间的本质区别或者说本质关系是什么?
作者:
许庭洲
时间:
2012-9-6 10:15
1 . .NET里面的事件本质上是对消息的封装;
2. 事件是委托的一种特殊形式,它要求委托的返回值类型是void,也就是多路广播。
作者:
王海舟
时间:
2012-9-6 10:24
定义一个委托:
public
delegate
void
PubComputerEventHandler(
object
sender, PubEventArgs e);
定义一个与该委托相关联的事件:
public
event
PubComputerEventHandler PubComputer;
其中,委托是一种类型,而事件不是类型,它只是一个方法。
在事件中包含有一个委托链,所以可以将委托直接赋值给事件,其实就是赋值给事件中包含的委托链,所以看起来事件就像是委托一样。
而调用一个事件,就是调用这个事件中包含的委托链,也就是调用与这个委托链相关联的所有方法。
作者:
mjbtdym
时间:
2012-9-7 17:08
本质:事件与委托本质是一样的,但也有一些区别:
A、使用委托时允许外界直接触发事件,而事件必须由事件源对象自己引发(间接引发)。
B、以Delegate作为委托类型的后缀,以EventHandle作为事件委托的后辍,是规范的命名规
则
委托与类,结构,接口,枚举是一类,而事件属类成员,和属性,方法,字段是一类
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2