共用方式為


委派 (C# 程式設計手冊)

委派 是一種類型,表示方法參考,該方法具有特定的參數清單和回傳類型。 當您具現化委派時,可以將委派實例與具有相容簽章和傳回類型的任何方法產生關聯。 您可以透過委派實例叫用或呼叫 方法。

委派可用來將方法當做自變數傳遞至其他方法。 事件處理程式基本上是透過委派叫用的方法。 當您建立自定義方法時,Windows 控件之類的類別可以在發生特定事件時呼叫您的方法。

下列範例顯示委派宣告:

public delegate int PerformCalculation(int x, int y);

您可以將任何符合委派類型的方法指派給任意可存取的類別或結構。 方法可以是靜態或實例方法。 彈性可讓您以程式設計方式變更方法呼叫,或將新的程式代碼插入現有的類別。

注意

在方法多載中,方法的簽章不包含回傳值。 不過,在委託的上下文中,簽章確實包含傳回值。 換句話說,方法的傳回型別必須與委派所宣告的傳回型別相容。

將方法作為參數傳遞的能力,使得委派成為定義回呼方法的理想選擇。 您可以撰寫方法,以比較應用程式中的兩個物件。 然後,方法就可以用於排序演算法的委派中。 因為比較程式代碼與連結庫不同,因此排序方法可能更一般。

函式指標 支援類似的案例,您需要對呼叫慣例有更多的控制權。 使用新增至委派類型的虛擬方法來叫用與委派相關聯的程式碼。 當您使用函式指標時,可以指定不同的慣例。

探索委派特性

委派代表具有以下特性:

  • 委派允許將方法作為參數來傳遞。
  • 委派可用來定義回呼函式。
  • 委派可以鏈結在一起,例如在單一事件上呼叫多個方法。
  • 方法不需要完全符合委派類型。 如需詳細資訊,請參閱在委派中使用變數
  • Lambda 表達式是撰寫內嵌程式代碼區塊更簡潔的方式。 Lambda 表達式 (在特定內容中) 會編譯為委派類型。 如需 Lambda 表達式的詳細資訊,請參閱 Lambda 表達式。

如需委派的詳細資訊,請參閱下列文章:

存取 C# 語言規格

語言規格是 C# 語法和使用方式的最終來源。 如需詳細資訊,請參閱 C# 語言規範中的 委派