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
{
}
}
在其中实现自己的注册函数即可。看上去是不是很像属性的定义:)
分享到:
相关推荐
c#事件机制归纳,c#事件机制归纳,c#事件机制归纳
Java + C# 事件机制理解
你知道 C#有一个内置的事件机制吗?这个东东在 Unity3D里也非常好用。
C++ 模拟 C# 事件 函数指针 尾随参数
C#事件与引用闹钟 出早操的闹钟 本人收藏了3年的资源 现放出 都是总结了很多系统 软件项目实施过程中的经验的 慢慢积累的
C#内存管理机制 C#内存管理机制 C#内存管理机制
c# 插件机制的实现(如何通过插件的机制,实现动态功能扩展)
C#实现的基于观察者模式的事件机制,unity可用。分2个文件,事件和事件中心。事件中心保存有对所有事件(Observer)的引用,事件中心负责对这些事件进行分发,这样每个事件就可以通过回调函数的方式进行更新(传递...
通过c#实现简单的事件分发,实现机制可以仔细探究,很有作用。
学习如何使用和事件有关的类、委托和订阅事件,C#事件处理的工作流程。
你可能通过看书知道了MFC的消息循环和传递机制,但是C#的事件和MFC的消息机制有什么区别和共同点呢?本文档揭示了winform程序的内部消息机制.
C#加密机制实例源码-口令加密Exe【201903】
文档中收集了很多篇关于C#中委托与事件的文章,读者可以以此对比,并且文档中做了多处批示,希望能给大家提供一些帮助。
C#事件监视变量变化,事件推送机制,用于变量绑定场景,后台出发前台更新操作
c#用于缓存数据,看了就知道了,c#缓存机制,提供缓存功能.简易版.
简述C#中中的消息处理机制,对C#底层了解有一定用处。
主要介绍了C# 实现Scoket心跳机制的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
今天来谈谈C#的GC,也就是垃圾回收机制,非常的受教,总结如下 首先:谈谈托管,什么叫托管,我的理解就是托付C#运行环境帮我们去管理,在这个运行环境中可以帮助我们开辟内存和释放内存,开辟内存一般用new,内存是...
C# 类间通信实例,应用了事件委托的通信机制,技术有限,如有错处理请指正。
资源演示了如何使用委托事件,验证委托机制的工作原理