首页 > 开发 > 综合 > 正文

C#事件机制学习

2024-07-21 02:25:02
字体:
来源:转载
供稿:网友
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
{
}
}
在其中实现自己的注册函数即可。看上去是不是很像属性的定义:)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表