// 定义一个事件发布者类
public class Publisher
{
// 声明一个事件,使用 EventHandler 委托类型
public event EventHandler MyEvent;
// 触发事件的方法
protected virtual void OnMyEvent(EventArgs e)
{
// 检查是否有订阅者
MyEvent?.Invoke(this, e);
}
// 模拟事件触发的公共方法
public void DoSomething()
{
Console.WriteLine("Publisher is doing something...");
// 触发事件
OnMyEvent(EventArgs.Empty);
}
}
// 定义一个事件订阅者类
public class Subscriber
{
// 构造函数中订阅事件
public Subscriber(Publisher pub)
{
pub.MyEvent += HandleMyEvent;
}
// 事件处理方法
private void HandleMyEvent(object sender, EventArgs e)
{
Console.WriteLine("Subscriber received the event!");
}
}
// 测试代码
public class Program
{
public static void Main(string[] args)
{
Publisher pub = new Publisher();
Subscriber sub = new Subscriber(pub);
// 模拟事件触发
pub.DoSomething();
}
}
MyEvent
的事件。OnMyEvent
方法用于触发该事件。DoSomething
方法模拟了某个操作完成后触发事件的行为。Publisher
类的 MyEvent
事件,并定义了事件处理方法 HandleMyEvent
。Publisher
和 Subscriber
对象,并调用 Publisher
的 DoSomething
方法来触发事件。通过这种方式,当 Publisher
类中的某个操作完成时,它会通知所有订阅了其事件的对象(如 Subscriber
),从而实现了一种松耦合的通信机制。
上一篇:c#上位机开发
下一篇:c# out
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站