在C#中,處理多個(gè)事件需要使用事件處理器和委托
MyEventHandler
的委托:public delegate void MyEventHandler(object sender, EventArgs e);
EventPublisher
的類:public class EventPublisher
{
// 聲明事件
public event MyEventHandler MyEvent;
// 觸發(fā)事件
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);
// 觸發(fā)事件
publisher.OnMyEvent();
}
}
當(dāng)你運(yùn)行這個(gè)程序時(shí),你將看到"Event triggered!"輸出,表明事件已被成功觸發(fā)和處理。
根據(jù)需要,你可以為EventPublisher
類添加更多的事件,并在EventSubscriber
類中為每個(gè)事件添加相應(yīng)的事件處理器。