委派 (C# 程式設計手冊)
委派 是一種類型,表示方法參考,該方法具有特定的參數清單和回傳類型。 當您具現化委派時,可以將委派實例與具有相容簽章和傳回類型的任何方法產生關聯。 您可以透過委派實例叫用或呼叫 方法。
委派可用來將方法當做自變數傳遞至其他方法。 事件處理程式基本上是透過委派叫用的方法。 當您建立自定義方法時,Windows 控件之類的類別可以在發生特定事件時呼叫您的方法。
下列範例顯示委派宣告:
public delegate int PerformCalculation(int x, int y);
您可以將任何符合委派類型的方法指派給任意可存取的類別或結構。 方法可以是靜態或實例方法。 彈性可讓您以程式設計方式變更方法呼叫,或將新的程式代碼插入現有的類別。
注意
在方法多載中,方法的簽章不包含回傳值。 不過,在委託的上下文中,簽章確實包含傳回值。 換句話說,方法的傳回型別必須與委派所宣告的傳回型別相容。
將方法作為參數傳遞的能力,使得委派成為定義回呼方法的理想選擇。 您可以撰寫方法,以比較應用程式中的兩個物件。 然後,方法就可以用於排序演算法的委派中。 因為比較程式代碼與連結庫不同,因此排序方法可能更一般。
函式指標 支援類似的案例,您需要對呼叫慣例有更多的控制權。 使用新增至委派類型的虛擬方法來叫用與委派相關聯的程式碼。 當您使用函式指標時,可以指定不同的慣例。
探索委派特性
委派代表具有以下特性:
- 委派允許將方法作為參數來傳遞。
- 委派可用來定義回呼函式。
- 委派可以鏈結在一起,例如在單一事件上呼叫多個方法。
- 方法不需要完全符合委派類型。 如需詳細資訊,請參閱在委派中使用變數 。
- Lambda 表達式是撰寫內嵌程式代碼區塊更簡潔的方式。 Lambda 表達式 (在特定內容中) 會編譯為委派類型。 如需 Lambda 表達式的詳細資訊,請參閱 Lambda 表達式。
檢閱相關文章
如需委派的詳細資訊,請參閱下列文章:
- 使用委派
- 使用具名方法與匿名方法 委派
- 在委派中使用變異數
- 如何結合委派(多重委派)
- 如何宣告、具現化及使用委派
存取 C# 語言規格
語言規格是 C# 語法和使用方式的最終來源。 如需詳細資訊,請參閱 C# 語言規範中的 委派。