// 定义一个委托类型,它代表了一个方法的签名
public delegate void Notify(string message);
// 定义一个包含事件的类
public class Publisher
{
// 声明一个事件,基于上面定义的委托类型
public event Notify OnNotify;
// 触发事件的方法
public void TriggerEvent()
{
if (OnNotify != null)
{
// 触发事件并传递参数
OnNotify("事件被触发了!");
}
}
}
// 订阅者类
public class Subscriber
{
// 构造函数中订阅事件
public Subscriber(Publisher publisher)
{
// 订阅Publisher类的OnNotify事件
publisher.OnNotify += HandleEvent;
}
// 事件处理方法
private void HandleEvent(string message)
{
Console.WriteLine($"接收到消息: {message}");
}
}
// 测试代码
class Program
{
static void Main(string[] args)
{
Publisher publisher = new Publisher();
Subscriber subscriber = new Subscriber(publisher);
// 触发事件
publisher.TriggerEvent();
}
}
委托(Delegate):Notify
是一个委托类型,它定义了一个方法的签名。在这个例子中,Notify
代表了一个返回 void
并接收一个 string
参数的方法。
事件(Event):Publisher
类中的 OnNotify
是一个事件,它基于 Notify
委托类型。事件允许发布者在某个特定时刻通知所有订阅者。
订阅者(Subscriber):Subscriber
类订阅了 Publisher
的 OnNotify
事件,并在事件触发时调用 HandleEvent
方法来处理事件。
触发事件:TriggerEvent
方法用于触发事件,当事件被触发时,所有订阅者的处理方法都会被执行。
测试代码:在 Main
方法中,创建了一个 Publisher
和一个 Subscriber
,然后通过调用 TriggerEvent
方法来触发事件,最终输出消息到控制台。
上一篇:c# razor
下一篇:c# rtsp
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站