黑马程序员技术交流社区

标题: 事件和委托的关系 [打印本页]

作者: xinchenglong    时间: 2013-8-24 17:46
标题: 事件和委托的关系
1、委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为,委托方法的使用可以像其他任何方法一样,具有参数和返回值。
委托是包含具有相同签名和返回值类型的有序方法列表
方法的列表称为调用列表;当委托被调用时,它调用列表
中的每一个方法.

2、事件是被封装的委托;事件包含了一个私有的委托
1)事件提供了对它的私有控制委托的结构化访问
2)与委托中的其他操作不一样,事件我们只可以添加、删除或调用事件
处理程序.
3)事件被触发时,它调用委托来一次调用调用列表中的方法

事件和委托之间到底存在怎样的关系呢?在以后的编程中,如何如使用?

作者: shenge321    时间: 2013-8-24 17:54
我只记得,事件是阉割后的委托。
作者: xinchenglong    时间: 2013-8-24 17:56
这样该怎么理解呢?
作者: 许庭洲    时间: 2013-8-24 19:56
1. 事件的内部是用委托实现的;
2. 对于事件来讲,外部只能"注册自己+=, 注销自己-=",外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法;
3. 事件是用来阉割委托实例的,类比用一个自定义类阉割List;
4. 事件只能add, remove自己,不能赋值;
5. 事件只能只能+=,-=,不能=。
作者: xinchenglong    时间: 2013-8-24 19:58
谢谢前辈了,我有点开始理解了……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2