阅读量:0
在C#中,委托和事件是实现解耦的一种常用方法。通过使用委托和事件,你可以将事件的发送者和接收者分离,从而使它们之间的耦合度降低。下面是一个简单的示例,展示了如何使用委托和事件实现解耦:
- 首先,定义一个委托:
public delegate void MyEventHandler(object sender, EventArgs e);
- 创建一个包含事件的类:
public class EventPublisher { // 定义事件 public event MyEventHandler MyEvent; // 触发事件的方法 public void RaiseMyEvent() { MyEvent?.Invoke(this, EventArgs.Empty); } }
- 创建一个订阅事件的类:
public class EventSubscriber { public EventSubscriber(EventPublisher publisher) { // 订阅事件 publisher.MyEvent += OnMyEvent; } // 处理事件的方法 private void OnMyEvent(object sender, EventArgs e) { Console.WriteLine("Event received!"); } }
- 在主程序中使用这两个类:
class Program { static void Main(string[] args) { EventPublisher publisher = new EventPublisher(); EventSubscriber subscriber = new EventSubscriber(publisher); // 触发事件 publisher.RaiseMyEvent(); } }
在这个示例中,EventPublisher
类负责触发事件,而 EventSubscriber
类负责处理事件。通过将事件的发送者和接收者分离,我们可以轻松地更改事件的接收者,而不需要修改发送者的代码。这就实现了解耦。