标签:
1. 概述
类型之所以能提供事件通知功能,是因为类型维护了一个已登记方法的列表。事件发生后,类型将通知列表中所有已登记的方法。
2. 名词解释
3. 主要内容
3.1 设计要公开事件的类型
① 第一步:定义类型来容纳所有需要发送给事件通知接收者的附加信息。(EventArgs)
② 第二步:定义事件成员。(event)
③ 第三步:定义负责引发事件的方法来通知事件的登记对象。(protected virtual ...)(考虑线程安全)
④ 第四步:定义方法将输入转化为期望事件。
3.2 编译器如何实现事件
一条事件定义语句,在编译时会被转化为以下3个构造:
① 一个被初始化为null的私有委托字段
② 一个公共add_Xxx方法(Xxx是事件名)
③ 一个公共remove_Xxx方法(Xxx是事件名)
3.3 设计侦听事件的类型
internal sealed class Fax { public Fax(MailManager mm) { mm.NewMail += FaxMsg; } //新邮件到达时,MailManager将调用这个方法 private void FaxMsg(Object sender, NewMailEventArgs e) { //... } // public void Unregister(MailManager mm) { mm.NewMail -= FaxMsg; } }
3.4 显式实现事件
未完待续。。
4. 总结
标签:
原文地址:http://www.cnblogs.com/stone_lv/p/4316036.html