在 C# 中,EventHandler 是一种委托类型,用于定义事件处理程序方法的签名。它接受两个参数:发送方(通常是事件的源对象)和事件参数。

以下是 C# 中使用 EventHandler 的一些常见用法:

  1. 定义事件和事件处理程序:
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)
    {
        // 处理事件
    }
}
  1. 订阅事件处理程序:
MyClass myObj = new MyClass();
MyEventHandler handler = new MyEventHandler();
myObj.MyEvent += handler.HandleEvent; // 订阅事件处理程序
  1. 取消订阅事件处理程序:
myObj.MyEvent -= handler.HandleEvent; // 取消订阅事件处理程序
  1. 使用匿名方法或 Lambda 表达式作为事件处理程序:
myObj.MyEvent += (sender, e) =>
{
    // 处理事件
};
  1. 使用事件参数:
public void HandleEvent(object sender, MyEventArgs e)
{
    Console.WriteLine(e.SomeProperty); // 访问事件参数的属性
}

需要注意的是,事件处理程序的方法签名必须与 EventHandler 委托的签名匹配,即接受两个参数并返回 void。事件处理程序方法的命名通常以 'Handle' 或 'On' 开头,便于识别。

此外,还可以使用泛型版本的 EventHandler 来定义具有特定事件参数类型的事件处理程序委托,其中 TEventArgs 是自定义的事件参数类型。

C# 事件处理程序 (EventHandler) 使用指南

原文地址: https://www.cveoy.top/t/topic/pgA9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录