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>
相关文章推荐
- C#学习笔记——事件机制
- c#中事件机制学习
- C#事件机制学习
- C#中的事件处理机制
- C#中的预定义事件处理机制(转)
- C# 事件机制
- Cocos2d-x 3.2 学习笔记(九)EventDispatcher事件分发机制
- C#学习之事件
- C# 2.0学习之--事件2
- C#学习笔记8——C# 中的委托和事件
- Flex学习-事件机制的工作流程
- C#Selenium学习(五)-事件
- Flash AS3 学习12 - 事件处理机制
- android 事件分发机制学习-编辑学习中
- c#事件学习
- U3D C# 实现AS3事件机制
- C#开发学习笔记:编写自定义Button控件的自定义事件
- 关于c#中的事件处理机制
- C#委托与事件学习笔记
- 浅析Java与C#的事件处理机制