事件是实现交互的类型成员。


定义事件需要提供以下能力:
1.方法可登记/注销它对该事件的关注。
2.改事件发生时,登记了的方法会收到通知。

类型之所以能提供事件通知功能,是因为类型维护了一个已登记方法的列表。事件发生后,类型将通知列表中所有已登记的方法。

为了理解事件在CLR中的工作机制,举个实用的场景:
假定要设计一个电子邮件程序。电子邮件到达时,用户希望将该邮件转发给传真机或寻呼机。
构建这个应用程序时,假定先设计一个名为MailManager的类型,负责接收传入的电子邮件。MailManager类型公开了一个名为NewMail的事件。其他类型(如Fax和Pager)的对象可登记它们对这个事件的关注。MailManager收到信邮件时,会引发该事件,将邮件分发给每一个登记的对象。

应用程序初始化时,只实例化一个MailManager实例。然后,应用程序可实例化任意数量的Fax和Pager对象。

第二部分 设计类型:第11章 事件

相关文章:

  • 2021-06-25
  • 2021-06-06
  • 2022-02-06
  • 2021-06-23
  • 2021-09-26
  • 2021-10-19
  • 2022-12-23
  • 2022-02-09
猜你喜欢
  • 2022-01-06
  • 2021-12-22
  • 2021-05-23
  • 2021-09-06
  • 2021-08-04
  • 2021-11-08
  • 2021-07-06
相关资源
相似解决方案