在C#中,使用lambda表達式處理event主要涉及到委托和事件的概念。以下是一個簡單的示例,演示了如何使用lambda表達式來處理一個事件:
MyEventHandler
的委托類型,它接受兩個整數參數并返回void
。public delegate void MyEventHandler(int x, int y);
MyEventPublisher
的類,它包含一個名為MyEvent
的事件,該事件使用MyEventHandler
委托類型。public class MyEventPublisher
{
public event MyEventHandler MyEvent;
public void RaiseMyEvent(int x, int y)
{
MyEvent?.Invoke(x, y);
}
}
MyEventPublisher
對象,并使用lambda表達式來訂閱事件。在這個例子中,我們將使用一個匿名方法作為事件處理程序,并使用lambda表達式來簡化它。public class Program
{
public static void Main()
{
MyEventPublisher publisher = new MyEventPublisher();
// 使用lambda表達式訂閱事件
publisher.MyEvent += (x, y) =>
{
Console.WriteLine($"Event received with parameters: {x}, {y}");
};
// 觸發事件
publisher.RaiseMyEvent(10, 20);
}
}
在上面的示例中,我們使用了一個lambda表達式(x, y) => Console.WriteLine($"Event received with parameters: {x}, {y}")
來定義事件處理程序。當RaiseMyEvent
方法被調用時,這個事件處理程序將被執行,并在控制臺上輸出一條消息。