C#的事件机制
来源:互联网 发布:网页js代码用列 编辑:程序博客网 时间:2024/04/29 16:51
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();
}
}
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#的事件机制
- C#的事件机制
- C#的事件机制
- C#的事件机制。
- C#的事件机制
- C#的事件处理机制
- C#的事件处理机制
- C#的事件处理机制应用
- C#的事件处理机制应用
- C#的事件处理机制应用
- C#的事件处理机制应用
- C#的事件机制效率问题
- C#事件机制学习
- C#事件处理机制
- C# 事件机制
- C# 事件机制实例
- Visual C# 对话框全接触
- Visual C#中实现窗体间的数据传递(1)
- Visual C#实现窗体间数据传递(2)
- 卖家销售技巧
- 解读C#中的正则表达式
- C#的事件机制
- Java中的线程
- c#基础——关于类
- 一个扩展后的Split方法,可根据字符串分隔字符,返回字符数组
- 九月的幸福~~
- 显示一个WinForms闪屏
- Web Services何时才能更具意义?
- 使用C#创建webservice及三种调用方式
- 广州品茗:此间普洱香四溢