基础:
    1. .net框架约定,所有保存事件信息的类型都应该继承自System.EventArgs,并且类型名称应该以EventArgs结尾;委托类型应该以EventHandler结束,回调方法原型应该有一个void返回值,并且接受两个参数, 第一个Object指向发送通知的对象;第二个参数继随自EventArgs类型,包括接受者需要的附加信息。
     2.如果定义的事件没有传递 给事件接收者的附加信息,便不必定义新的委托,直接使用System.EventHandler,并将EventArgs.Empty传递给第2个参数即可
public delegate void EventHandler(Object sender, EventArgs e);

.net框架程序设计
最简间的事件与委托关联
《.Net框架程序设计》读书笔记 之 事件与委托//定义委托
《.Net框架程序设计》读书笔记 之 事件与委托
public delegate void RequestHandler(string Url);
《.Net框架程序设计》读书笔记 之 事件与委托
//定义委托类型的事件
《.Net框架程序设计》读书笔记 之 事件与委托
public event RequestHandler RequestEvent;
《.Net框架程序设计》读书笔记 之 事件与委托
//定义事件处理程序,即委托的回调方法
《.Net框架程序设计》读书笔记 之 事件与委托
public void RequestMothed(string url)
RequestEvent(stringTest);

事件可用的修饰符:

Static   Virtual    Override    Abstract

Static类似于字段,类的甩的对象共享静态事件,当引用这类事件时,必须用类名称而不是名称


一:登记事件
定义一个收邮件的类MailManager,在MailManager中定义一个收到邮件便触发的事件MailMSG,传真fax寻呼pager等对象在登记MailManager和MailMSG事件,当新电子邮件到达时,MailManager将通知发送给所有登记对象,这些对象按自己的方法处理。  开始代码.

《.Net框架程序设计》读书笔记 之 事件与委托class MailManager
}
其中《.Net框架程序设计》读书笔记 之 事件与委托   编辑器编译public event MailMsgEventHandler MailMsg;时,会产生
二:侦听事件
《.Net框架程序设计》读书笔记 之 事件与委托class Fax
}

其中,编辑器处理mm.MailMsg += new MailManager.MailMsgEventHandler(FaxMsg);
时会将它转换为
《.Net框架程序设计》读书笔记 之 事件与委托mm.add_MailMsg(new MailManager.MailMsgEventHandler(FaxMsg));
《.Net框架程序设计》读书笔记 之 事件与委托
//调用了前面public event MailMsgEventHandler MailMsg编辑的产生的代码  public virtual void add_MailMsg()方法,所以此方法里面有一个是MailMsgEventHandler委托的实例。

三:显式控制事件注册,实际上就将public event MailMsgEventHandler MailMsg编辑时产生的内部代码源码化
《.Net框架程序设计》读书笔记 之 事件与委托Class MailManager

相关文章: