温馨提示×

c# eventbus的订阅与发布机制

c#
小樊
95
2024-07-18 04:39:47
栏目: 编程语言

在C#中实现事件总线(Event Bus)的订阅与发布机制,可以使用委托和事件来实现。下面是一个简单的示例代码:

using System;

public class EventBus
{
    public event EventHandler<EventArgs> EventOccurred;

    public void PublishEvent()
    {
        OnEventOccurred(EventArgs.Empty);
    }

    protected virtual void OnEventOccurred(EventArgs e)
    {
        EventOccurred?.Invoke(this, e);
    }
}

public class Subscriber
{
    public Subscriber(EventBus eventBus)
    {
        eventBus.EventOccurred += HandleEvent;
    }

    private void HandleEvent(object sender, EventArgs e)
    {
        Console.WriteLine("Event occurred!");
    }
}

public class Program
{
    public static void Main()
    {
        EventBus eventBus = new EventBus();
        Subscriber subscriber = new Subscriber(eventBus);

        eventBus.PublishEvent();
    }
}

在这个示例中,EventBus类包含一个事件EventOccurred,用于发布事件。Subscriber类订阅了EventOccurred事件,并在事件发生时执行HandleEvent方法。在Main方法中,创建了一个EventBus实例和一个Subscriber实例,然后调用EventBus的PublishEvent方法来发布事件。当事件发生时,Subscriber会接收到事件并输出"Event occurred!"。

通过这种方式,可以实现简单的事件总线机制,用于实现发布订阅模式。在实际应用中,可以根据需要扩展事件和订阅者的功能,实现更复杂的事件处理逻辑。

0