C#的事件机制

王朝c#·作者佚名  2008-05-19
宽屏版  字体: |||超大  

C#的事件机制是基于委托实现的。实现一个事件,要先定义一个委托类型

class1

{

public delegate void mydelegate (myEventArgs e);

public event mydelegate event1;

}

然后我们可以使用+=和-=注册、移除事件

class1.event1 += new mydelegate(new myEventArgs());

在class中引发事件时最好这样

class1

{

public fireEvent()

{

if(event1 != null)

event1();

}

}

如果不想声明自己的委托类型的话,可以使用System.EventHandler的委托类型

public delegate void EventHandler(object sender, EventArgs e);

其中EventArgs转送附加参数。

可以实现自己的EventArgs类

class myEventArgs:EventArgs

{

}

类名最好以EventArgs 结尾,这是个默认规则

调用时如果不想使用参数可以传递

EventArgs.Empty

事件其实背后做了很多工作,自动生成一个委托实例、一个注册委托的add_XXX方法、一个注销委托的

Remove_XXX方法。事实上这两个方法可以自己定制。只要声明事件时使用以下语法:

public event MyDelegate1 Event1

{

add

{

}

remove

{

}

}

在其中实现自己的注册函数即可。看上去是不是很像属性的定义:)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有