在C#中,处理多个事件需要使用事件处理器和委托
MyEventHandler
的委托:public delegate void MyEventHandler(object sender, EventArgs e);
EventPublisher
的类:public class EventPublisher
{
// 声明事件
public event MyEventHandler MyEvent;
// 触发事件
protected virtual void OnMyEvent()
{
MyEvent?.Invoke(this, EventArgs.Empty);
}
}
EventSubscriber
的类:public class EventSubscriber
{
public EventSubscriber(EventPublisher publisher)
{
// 订阅事件
publisher.MyEvent += OnMyEvent;
}
// 事件处理器
private void OnMyEvent(object sender, EventArgs e)
{
Console.WriteLine("Event triggered!");
}
}
class Program
{
static void Main(string[] args)
{
EventPublisher publisher = new EventPublisher();
EventSubscriber subscriber = new EventSubscriber(publisher);
// 触发事件
publisher.OnMyEvent();
}
}
当你运行这个程序时,你将看到"Event triggered!"输出,表明事件已被成功触发和处理。
根据需要,你可以为EventPublisher
类添加更多的事件,并在EventSubscriber
类中为每个事件添加相应的事件处理器。