在C#中,委托是一種類型,它可以存儲對一個或多個方法的引用。委托可以被用來將方法作為參數傳遞給其他方法,或者用來在運行時動態地將方法綁定到委托上。
定義一個委托的語法如下:
delegate void MyDelegate(int param);
定義一個委托后,可以使用該委托來創建委托實例,并將方法綁定到該委托上:
MyDelegate myDelegate = new MyDelegate(SomeMethod);
事件是委托的一種特殊用法,它提供了一種機制,讓類能夠通知其他類或對象發生了一些重要的動作或狀態變化。事件在C#中通常用于實現觀察者模式。
定義一個事件的語法如下:
public event MyDelegate MyEvent;
當事件發生時,可以通過調用事件來觸發委托綁定的方法:
MyEvent?.Invoke(10);
在使用事件時,通常會定義一個事件處理方法來處理事件觸發時的邏輯:
void EventHandler(int param)
{
Console.WriteLine("Event occurred with parameter: " + param);
}
MyEvent += EventHandler;
通過委托和事件的機制,可以實現類與類之間的松耦合,使代碼更具有可維護性和靈活性。