C# 事件处理程序 (EventHandler) 使用指南
在 C# 中,EventHandler 是一种委托类型,用于定义事件处理程序方法的签名。它接受两个参数:发送方(通常是事件的源对象)和事件参数。
以下是 C# 中使用 EventHandler 的一些常见用法:
- 定义事件和事件处理程序:
public class MyEventArgs : EventArgs
{
// 自定义事件参数
}
public class MyClass
{
public event EventHandler<MyEventArgs> MyEvent; // 定义事件
protected virtual void OnMyEvent(MyEventArgs e)
{
MyEvent?.Invoke(this, e); // 触发事件
}
}
public class MyEventHandler
{
public void HandleEvent(object sender, MyEventArgs e)
{
// 处理事件
}
}
- 订阅事件处理程序:
MyClass myObj = new MyClass();
MyEventHandler handler = new MyEventHandler();
myObj.MyEvent += handler.HandleEvent; // 订阅事件处理程序
- 取消订阅事件处理程序:
myObj.MyEvent -= handler.HandleEvent; // 取消订阅事件处理程序
- 使用匿名方法或 Lambda 表达式作为事件处理程序:
myObj.MyEvent += (sender, e) =>
{
// 处理事件
};
- 使用事件参数:
public void HandleEvent(object sender, MyEventArgs e)
{
Console.WriteLine(e.SomeProperty); // 访问事件参数的属性
}
需要注意的是,事件处理程序的方法签名必须与 EventHandler 委托的签名匹配,即接受两个参数并返回 void。事件处理程序方法的命名通常以 'Handle' 或 'On' 开头,便于识别。
此外,还可以使用泛型版本的 EventHandler
原文地址: https://www.cveoy.top/t/topic/pgA9 著作权归作者所有。请勿转载和采集!