代表

摘要

一個委託型別是表示一個特定的方法的簽名型別。此型別的例項是指具有匹配簽名的特定方法。方法引數可以具有委託型別,因此這一個方法可以傳遞對另一個方法的引用,然後可以呼叫該方法

內建代表型別:Action<...>Predicate<T>Func<...,TResult>

System 名稱空間包含 Action<...>Predicate<T>Func<...,TResult> 委託,其中“…”表示 0 到 16 個泛型型別引數(對於 0 引數,Action 是非泛型的)。

Func 表示返回型別匹配 TResult 的方法,Action 表示沒有返回值(void)的方法。在這兩種情況下,附加的泛型型別引數按順序匹配方法引數。

Predicate 表示布林返回型別的方法,T 是輸入引數。

自定義委託型別

可以使用 delegate 關鍵字宣告命名的委託型別。

呼叫代表

可以使用與方法相同的語法呼叫委託:委託例項的名稱,後跟包含任何引數的括號。

分配給代表

代表可以通過以下方式分配:

  • 分配命名方法
  • 使用 lambda 分配匿名方法
  • 使用 delegate 關鍵字分配命名方法。

結合代表

可以使用+運算子將多個委託物件分配給一個委託例項。- 運算子可用於從另一個委託中刪除元件委託。