在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和一个事件OnEvent。PublishEvent方法用于触发事件。
EventSubscriber类包含了一个Subscribe方法和一个Unsubscribe方法,用于订阅和取消订阅事件。HandleEvent方法用于处理事件。
在Main方法中,创建了一个EventPublisher实例和一个EventSubscriber实例。通过调用Subscribe方法订阅事件,并通过调用PublishEvent方法触发事件。最后调用Unsubscribe方法取消订阅事件。


