在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
類中為每個事件添加相應的事件處理器。