C# 定义事件

定义事件前,先要定义一个委托类型(delegate),以用于该事件。这个委托类型指定了事件处理方法必须遵循的签名。
定义委托:

public delegate void MessageHandler(string messageText);


这个委托类型称为MessageHandler,是void函数的签名,它有一个string参数。
定义了委托后就可以把事件本身定义为Connection类的一个成员:

public class Connection <br/>  {<br/>         public event MessageHandler MessageArrived;<br/>


给事件命名MessageArrived,用event关键字和要使用的委托类型声明它。
以这种方式声明了事件后,就可以引发它,方法是按名称来调用它。就好象它是其签名有委托指定的方法一样。可以用下面的代码引发这个事件。

MessageArrived("This is a message");


如果定义该委托不包含任何参数,就可以使用下面的代码:

MessageArrived();



1.多用途的事件处理程序

Timer.Elapse事件的签名包含了事件处理程序中常见的两个参数,如下所示:
◆object source——引发事件的对象的引用;
◆ElapsedEventArgse——由事件传送的参数;

0 条留言

我要留言
(必填)
(必填,绝不公开)