在C#中,事件是一种用于在类或对象之间进行通信的机制。当某个特定的事件发生时,与该事件相关联的方法(称为事件处理程序)将被调用。
下面是使用C#事件的基本步骤:
event
关键字声明事件。例如:public event EventHandler MyEvent;
Invoke
方法。例如:MyEvent?.Invoke(this, EventArgs.Empty);
+=
运算符订阅事件。例如:public class MyClass
{
public void Subscribe()
{
MyEvent += MyEventHandler;
}
private void MyEventHandler(object sender, EventArgs e)
{
// 处理事件
}
}
-=
运算符取消订阅事件。例如:public class MyClass
{
public void Unsubscribe()
{
MyEvent -= MyEventHandler;
}
}
在上面的示例中,MyEvent
是一个事件成员变量,它是一个EventHandler
类型的委托。当需要触发事件时,使用MyEvent?.Invoke(this, EventArgs.Empty);
语句调用事件处理程序。在另一个类中,使用MyEvent += MyEventHandler;
语句订阅事件,并在MyEventHandler
方法中处理事件。使用MyEvent -= MyEventHandler;
语句取消订阅事件。
有事件到来的时候,会触发相应的注册的事件处理函数。可参见设计模式之观察者模式