溫馨提示×

c#中如何使用lambda表達式處理event

c#
小樊
83
2024-09-28 04:09:56
欄目: 編程語言

在C#中,使用lambda表達式處理event主要涉及到委托和事件的概念。以下是一個簡單的示例,演示了如何使用lambda表達式來處理一個事件:

  1. 首先,定義一個委托類型,用于表示事件處理程序。在這個例子中,我們定義了一個名為MyEventHandler的委托類型,它接受兩個整數(shù)參數(shù)并返回void。
public delegate void MyEventHandler(int x, int y);
  1. 接下來,定義一個包含事件的類。在這個例子中,我們定義了一個名為MyEventPublisher的類,它包含一個名為MyEvent的事件,該事件使用MyEventHandler委托類型。
public class MyEventPublisher
{
    public event MyEventHandler MyEvent;

    public void RaiseMyEvent(int x, int y)
    {
        MyEvent?.Invoke(x, y);
    }
}
  1. 現(xiàn)在,我們可以創(chuàng)建一個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}");
        };

        // 觸發(fā)事件
        publisher.RaiseMyEvent(10, 20);
    }
}

在上面的示例中,我們使用了一個lambda表達式(x, y) => Console.WriteLine($"Event received with parameters: {x}, {y}")來定義事件處理程序。當RaiseMyEvent方法被調(diào)用時,這個事件處理程序?qū)⒈粓?zhí)行,并在控制臺上輸出一條消息。

0