如何通过c#委托实现事件发布/订阅

avatar
作者
筋斗云
阅读量:0

在C#中,可以通过委托来实现事件的发布和订阅。以下是一个简单的示例代码:

using System;  public class EventPublisher {     public delegate void EventHandler(string message);     public event EventHandler OnEvent;      public void PublishEvent(string message)     {         OnEvent?.Invoke(message);     } }  public class EventSubscriber {     public void Subscribe(EventPublisher publisher)     {         publisher.OnEvent += HandleEvent;     }      public void Unsubscribe(EventPublisher publisher)     {         publisher.OnEvent -= HandleEvent;     }      public void HandleEvent(string message)     {         Console.WriteLine("Event received: " + message);     } }  public class Program {     public static void Main()     {         EventPublisher publisher = new EventPublisher();         EventSubscriber subscriber = new EventSubscriber();          subscriber.Subscribe(publisher);          publisher.PublishEvent("Hello World");          subscriber.Unsubscribe(publisher);          publisher.PublishEvent("Goodbye World");     } } 

在这个示例中,EventPublisher类包含了一个委托EventHandler和一个事件OnEventPublishEvent方法用于触发事件。

EventSubscriber类包含了一个Subscribe方法和一个Unsubscribe方法,用于订阅和取消订阅事件。HandleEvent方法用于处理事件。

Main方法中,创建了一个EventPublisher实例和一个EventSubscriber实例。通过调用Subscribe方法订阅事件,并通过调用PublishEvent方法触发事件。最后调用Unsubscribe方法取消订阅事件。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!