您的位置:首页 > 编程语言 > C#

C#事件机制学习

2004-07-15 15:54 423 查看




































我爱北京天安门



天安门上太阳升



伟大领袖毛主席



指引我们向前进






































<p><br />C#的事件机制是基于委托实现的。实现一个事件,要先定义一个委托类型<br />class1<br />{<br /> public delegate void mydelegate (myEventArgs e);<br /> public event mydelegate event1;<br />}<br />然后我们可以使用+=和-=注册、移除事件<br />class1.event1 += new mydelegate(new myEventArgs());<br
/>在class中引发事件时最好这样<br />class1<br />{<br /> public fireEvent()<br /> {<br />  if(event1 != null)<br />   event1();<br /> }<br />}</p> <p><br />如果不想声明自己的委托类型的话,可以使用System.EventHandler的委托类型<br />public delegate void EventHandler(object
sender, EventArgs e);<br />其中EventArgs转送附加参数。<br />可以实现自己的EventArgs类<br />class myEventArgs:EventArgs<br />{<br />}<br />类名最好以EventArgs 结尾,这是个默认规则<br />调用时如果不想使用参数可以传递<br />EventArgs.Empty</p> <p> </p> <p>事件其实背后做了很多工作,自动生成一个委托实例、一个注册委托的add_XXX方法、一个注销委托的</p>
<p>Remove_XXX方法。事实上这两个方法可以自己定制。只要声明事件时使用以下语法:<br />   public event MyDelegate1 Event1 <br />   {<br />      add <br />      {<br />      }<br />     
remove<br />      {<br />      }<br />   }<br />在其中实现自己的注册函数即可。看上去是不是很像属性的定义:)</p>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: