温馨提示×

c# lambda如何处理事件订阅

c#
小樊
82
2024-06-25 23:28:53
栏目: 编程语言

在C#中,可以使用lambda表达式来处理事件订阅。以下是一个示例:

public class EventPublisher
{
    public event EventHandler MyEvent;

    public void DoSomething()
    {
        // 触发事件
        MyEvent?.Invoke(this, EventArgs.Empty);
    }
}

public class EventSubscriber
{
    public EventSubscriber(EventPublisher publisher)
    {
        // 使用lambda表达式订阅事件
        publisher.MyEvent += (sender, e) =>
        {
            Console.WriteLine("Event received!");
        };
    }
}

class Program
{
    static void Main()
    {
        EventPublisher publisher = new EventPublisher();
        EventSubscriber subscriber = new EventSubscriber(publisher);

        publisher.DoSomething(); // 输出:Event received!
    }
}

在上面的示例中,EventPublisher 类有一个事件 MyEventEventSubscriber 类使用lambda表达式订阅了这个事件。当 DoSomething 方法被调用时,事件会被触发并lambda表达式中的代码会被执行。

0