C# EventHandler 简写
时间: 2023-07-12 17:18:46 浏览: 78
在 C# 中,`EventHandler` 可以通过使用方法组转换和 lambda 表达式进行简写。以下是一个示例:
```csharp
class Program
{
static void Main(string[] args)
{
var publisher = new EventPublisher();
// 使用方法组转换订阅事件
publisher.MyEventOccurred += MyEventHandler;
// 使用 lambda 表达式订阅事件
publisher.MyEventOccurred += (sender, e) => Console.WriteLine("Lambda expression is called.");
// 发生事件
publisher.DoSomething();
}
static void MyEventHandler(object sender, EventArgs e)
{
Console.WriteLine("MyEventHandler is called.");
}
}
public class EventPublisher
{
public event EventHandler MyEventOccurred;
public void DoSomething()
{
// 发生事件
OnMyEventOccurred(EventArgs.Empty);
}
protected virtual void OnMyEventOccurred(EventArgs e)
{
MyEventOccurred?.Invoke(this, e);
}
}
```
在上面的示例中,我们使用方法组转换和 lambda 表达式分别订阅了 `MyEventOccurred` 事件。使用方法组转换时,我们只需将方法名作为参数传递给事件,而不需要显式地创建委托实例。使用 lambda 表达式时,我们可以使用简洁的语法来定义匿名方法,并在方法体内编写处理事件的代码。
阅读全文