using System;
// 定义事件发布者类
public class Publisher
{
// 定义委托类型
public delegate void MyEventHandler(object sender, EventArgs e);
// 声明事件
public event MyEventHandler MyEvent;
// 触发事件的方法
public void RaiseEvent()
{
Console.WriteLine("触发事件");
// 检查是否有订阅者,并调用事件
MyEvent?.Invoke(this, EventArgs.Empty);
}
}
// 定义事件订阅者类
public class Subscriber
{
// 事件处理方法
public void OnEvent(object sender, EventArgs e)
{
Console.WriteLine("收到事件通知");
}
}
class Program
{
static void Main()
{
// 创建事件发布者对象
Publisher publisher = new Publisher();
// 创建事件订阅者对象
Subscriber subscriber = new Subscriber();
// 将订阅者的事件处理方法绑定到发布者的事件上
publisher.MyEvent += subscriber.OnEvent;
// 触发事件
publisher.RaiseEvent();
Console.ReadLine();
}
}
在这个示例中,Publisher 类包含一个事件 MyEvent,该事件的类型是 MyEventHandler 委托。RaiseEvent 方法用于触发事件,并检查是否有订阅者。Subscriber 类包含一个处理事件的方法 OnEvent。
在 Main 方法中,创建了 Publisher 和 Subscriber 对象,然后将订阅者的事件处理方法绑定到发布者的事件上。当触发事件时,订阅者会收到通知并执行相应的操作。
转载请注明出处:http://www.pingtaimeng.com/article/detail/6366/C#