码迷,mamicode.com
首页 > 其他好文 > 详细

第十一章 事件

时间:2015-03-05 16:21:21      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!