c#

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

小樊
81
2024-10-25 05:12:53
栏目: 编程语言

在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 类负责处理事件。通过将事件的发送者和接收者分离,我们可以轻松地更改事件的接收者,而不需要修改发送者的代码。这就实现了解耦。

0
看了该问题的人还看了