C#委托事件怎样实现解耦

avatar
作者
筋斗云
阅读量:0

在C#中,委托和事件是实现解耦的一种常用方法。通过使用委托和事件,你可以将事件的发送者和接收者分离,从而使它们之间的耦合度降低。下面是一个简单的示例,展示了如何使用委托和事件实现解耦:

  1. 首先,定义一个委托:
public delegate void MyEventHandler(object sender, EventArgs e); 
  1. 创建一个包含事件的类:
public class EventPublisher {     // 定义事件     public event MyEventHandler MyEvent;      // 触发事件的方法     public void RaiseMyEvent()     {         MyEvent?.Invoke(this, EventArgs.Empty);     } } 
  1. 创建一个订阅事件的类:
public class EventSubscriber {     public EventSubscriber(EventPublisher publisher)     {         // 订阅事件         publisher.MyEvent += OnMyEvent;     }      // 处理事件的方法     private void OnMyEvent(object sender, EventArgs e)     {         Console.WriteLine("Event received!");     } } 
  1. 在主程序中使用这两个类:
class Program {     static void Main(string[] args)     {         EventPublisher publisher = new EventPublisher();         EventSubscriber subscriber = new EventSubscriber(publisher);          // 触发事件         publisher.RaiseMyEvent();     } } 

在这个示例中,EventPublisher 类负责触发事件,而 EventSubscriber 类负责处理事件。通过将事件的发送者和接收者分离,我们可以轻松地更改事件的接收者,而不需要修改发送者的代码。这就实现了解耦。

广告一刻

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