C#的事件机制是基于委托实现的。实现一个事件,要先定义一个委托类型
class1
{
public delegate void mydelegate (myEventArgs e);
public event mydelegate event1;
}
然后我们在其它类中可以使用+=和-=注册、移除事件
class1.event1 += new mydelegate(new myEventArgs());
class1
{
public fireEvent()
{
if(event1 != null)//在class1中引发事件时最好这样
event1();
}
}
class1
{
public delegate void mydelegate (myEventArgs e);
public event mydelegate event1;
}
然后我们在其它类中可以使用+=和-=注册、移除事件
class1.event1 += new mydelegate(new myEventArgs());
class1
{
public fireEvent()
{
if(event1 != null)//在class1中引发事件时最好这样
event1();
}
}
如果不想声明自己的委托类型的话,可以使用System.EventHandler的委托类型
public delegate void EventHandler(object sender, EventArgs e);
其中EventArgs转送附加参数。
可以实现自己的EventArgs类
class myEventArgs:EventArgs
{
}
类名最好以EventArgs 结尾,这是个默认规则
调用时如果不想使用参数可以传递
EventArgs.Empty