如何通过c#委托实现事件发布/订阅
导读:在C#中,可以通过委托来实现事件的发布和订阅。以下是一个简单的示例代码: using System; public class EventPublisher { public delegate void EventHandler(...
在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
方法取消订阅事件。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过c#委托实现事件发布/订阅
本文地址: https://pptw.com/jishu/685450.html