在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;
语句取消订阅事件。
有事件到来的时候,会触发相应的注册的事件处理函数。可参见设计模式之观察者模式