C#中的委托是一種類型,它可以持有對方法的引用,并且可以在運行時動態地將方法賦給委托對象。委托可以看作是對函數的封裝,使得可以將方法當作參數傳遞給其他方法或屬性。
委托的工作原理如下:
聲明委托:首先需要聲明一個委托類型,定義了委托可以引用的方法的簽名(返回類型和參數類型)。例如:delegate int MyDelegate(int a, int b);
實例化委托:創建一個委托對象,可以通過將方法賦給委托對象來實例化委托。例如:MyDelegate myDelegate = new MyDelegate(Add);
調用委托:通過委托對象調用所引用的方法,可以直接將參數傳遞給委托對象,委托對象再將參數傳遞給引用的方法。例如:int result = myDelegate(5, 3);
委托鏈:委托還可以通過加法運算符+
和減法運算符-
來組合多個委托,形成委托鏈。當調用委托鏈時,會依次調用每個委托。
通過委托,可以實現回調函數、事件處理、多播委托等功能,使得 C# 中的事件驅動編程更加靈活和方便。