117.info
人生若只如初见

如何通过c#委托实现事件发布/订阅

在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和一个事件OnEventPublishEvent方法用于触发事件。

EventSubscriber类包含了一个Subscribe方法和一个Unsubscribe方法,用于订阅和取消订阅事件。HandleEvent方法用于处理事件。

Main方法中,创建了一个EventPublisher实例和一个EventSubscriber实例。通过调用Subscribe方法订阅事件,并通过调用PublishEvent方法触发事件。最后调用Unsubscribe方法取消订阅事件。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe39aAzsIBQVUB1M.html

推荐文章

  • C++成员函数指针与继承关系如何

    在C++中,成员函数指针与继承关系之间存在一些复杂性。成员函数指针是指向类成员函数的指针,包括非静态成员函数和静态成员函数。当涉及到继承关系时,情况变得更...

  • C++成员函数指针在设计模式中的应用

    C++成员函数指针在设计模式中有多种应用,在设计模式中常用的设计模式有策略模式、观察者模式和命令模式等,下面分别介绍成员函数指针在这些设计模式中的应用: ...

  • C++成员函数指针如何实现回调

    要实现回调功能,可以使用C++类的成员函数指针作为回调函数的参数,然后在需要执行回调的地方调用该函数指针。
    首先定义一个类,其中包含一个成员函数指针作...

  • 为什么要使用C++成员函数指针

    使用C++成员函数指针可以实现面向对象编程的一些高级特性,如回调函数、事件处理、设计模式等。通过成员函数指针,可以动态地指定对象的成员函数,并在运行时调用...

  • c#委托与接口的选择标准是什么

    在选择使用委托还是接口时,可以考虑以下标准: 功能性:委托适用于需要定义一个或多个方法的情况,而接口适用于需要定义一组相关方法的情况。 灵活性:委托可以...

  • c#委托的泛型使用方法是什么

    在C#中,可以通过使用泛型来定义委托,以实现更灵活和通用的委托类型。泛型委托的定义方式与普通委托类似,只是在声明委托时使用泛型类型参数。
    例如,定义...

  • margin-top如何影响相邻元素

    margin-top 是用来设置元素顶部外边距的属性。它会影响到元素与其相邻元素之间的间距,具体影响取决于元素的定位方式以及盒模型。
    如果两个相邻元素都是普通...

  • margin-top和边框合并了吗

    在一些情况下,margin-top和边框会合并,这是因为CSS的盒子模型规定了margin和border之间的关系。具体来说,相邻的元素的margin-top和边框会合并在一起,形成一个...