在 C# 中,委托和事件是一種常用的機制,用于實現事件驅動的編程模型。委托是一種類型,用于存儲對方法的引用,而事件是委托的一種特殊用法,用于通知其他代碼發生了某個特定的動作。
下面是一個簡單的示例,演示了如何在 C# 中定義和使用委托和事件:
using System;
// 定義一個委托類型
public delegate void MyEventHandler(object sender, EventArgs e);
// 定義一個包含事件的類
public class EventPublisher
{
// 聲明一個事件
public event MyEventHandler MyEvent;
// 觸發事件的方法
public void OnMyEvent()
{
MyEvent?.Invoke(this, EventArgs.Empty);
}
}
// 定義一個事件處理方法
public class EventHandler
{
public void HandleEvent(object sender, EventArgs e)
{
Console.WriteLine("Event handled by EventHandler");
}
}
class Program
{
static void Main()
{
EventPublisher publisher = new EventPublisher();
EventHandler handler = new EventHandler();
// 訂閱事件
publisher.MyEvent += handler.HandleEvent;
// 觸發事件
publisher.OnMyEvent();
}
}
在上面的示例中,我們首先定義了一個委托類型 MyEventHandler
,然后在 EventPublisher
類中聲明了一個事件 MyEvent
,并定義了一個觸發事件的方法 OnMyEvent()
。然后定義了一個處理事件的類 EventHandler
,其中包含一個處理事件的方法 HandleEvent()
。
在 Main
方法中,我們創建了一個 EventPublisher
實例和一個 EventHandler
實例,并將 EventHandler
的方法訂閱到 EventPublisher
的事件中。最后,調用 publisher.OnMyEvent()
方法觸發事件,EventHandler
的方法會被調用。
這就是在 C# 中使用委托和事件的基本方法。通過委托和事件,我們可以實現松耦合的組件之間的通信,使程序更加靈活和可擴展。