在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
类有一个事件 MyEvent
,EventSubscriber
类使用lambda表达式订阅了这个事件。当 DoSomething
方法被调用时,事件会被触发并lambda表达式中的代码会被执行。