委托:委托是一种类型,是一种持有一个或多个方法的对象,他存放的是函数入口的地址,我们可以通过委托引用方法,或者通过委托来调用其他方法。调用方法时方法的签名和返回值必须和声明的委托类型一致。
事件是一个特殊委托类型的字段,事件包含一个私有委托 。
注意:
(1)委托的声明必须放在方法块外,类里面。
(2)在调用委托时,需要判断该委托是否为空。
委托具有较好的安全性,因为委托是面向对象,类型安全、可靠的受控对象,而且runtime时,能保证委托指向一个有效的方法,无需担心委托会指向无效的地址或者地址越界。
事件和方法,属性一样,是类或结构体的成员。
处理事件程序的一般流程:
1.定义事件参数类。
2.定义委托类型。
1和2一般定义为全局。
3.声明事件。
3.必须在发布者中声明
4.定义事件的订阅者类。
一般是全局的。并且尽可能考虑通用性。
即尽可能适用于多个事件
5.定义 响应 事件的函数。 On开头的函数。
6.定义 调用 事件函数的 业务逻辑。
5和6必须在发布者中实现。
7.在上层逻辑中,组装 上述的类。
事件访问器