委託(C# 編程指南)
委託是一種引用方法的類型。一旦爲委託分配了方法,委託將與該方法具有完全相同的行爲。委託方法的使用可以像其他任何方法一樣,具有參數和返回值,如下面的示例所示:
C#
public delegate int PerformCalculation(int x, int y);
與委託的簽名(由返回類型和參數組成)匹配的任何方法都可以分配給該委託。這樣就可以通過編程方式來更改方法調用,還可以向現有類中插入新代碼。只要知道委託的簽名,便可以分配自己的委託方法。
將方法作爲參數進行引用的能力使委託成爲定義回調方法的理想選擇。例如,可以向排序算法傳遞對比較兩個對象的方法的引用。分離比較代碼使得可以採用更通用的方式編寫算法。
委託概述
委託具有以下特點:
委託類似於 C++ 函數指針,但它是類型安全的。
委託允許將方法作爲參數進行傳遞。
委託可用於定義回調方法。
委託可以鏈接在一起;例如,可以對一個事件調用多個方法。
方法不需要與委託簽名精確匹配。有關更多信息,請參見協變和逆變。
C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作爲參數傳遞,以代替單獨定義的方法。
本節內容
委託概述
何時使用委託而不使用接口
命名方法
匿名方法
協變和逆變
如何:合併委託
如何:聲明、實例化和使用委託
C# 語言規範
有關更多信息,請參見 C# 語言規範中的以下各章節:
1.11 委託
4.2.6 委託類型
7.5.5.2 委託調用
15 委託
請參見
參考
Delegate
概念
C# 編程指南
事件(C# 編程指南)