代表
摘要
一個委託型別是表示一個特定的方法的簽名型別。此型別的例項是指具有匹配簽名的特定方法。方法引數可以具有委託型別,因此這一個方法可以傳遞對另一個方法的引用,然後可以呼叫該方法
內建代表型別:Action<...>
,Predicate<T>
和 Func<...,TResult>
System
名稱空間包含 Action<...>
,Predicate<T>
和 Func<...,TResult>
委託,其中“…”表示 0 到 16 個泛型型別引數(對於 0 引數,Action
是非泛型的)。
Func
表示返回型別匹配 TResult
的方法,Action
表示沒有返回值(void)的方法。在這兩種情況下,附加的泛型型別引數按順序匹配方法引數。
Predicate
表示布林返回型別的方法,T 是輸入引數。
自定義委託型別
可以使用 delegate
關鍵字宣告命名的委託型別。
呼叫代表
可以使用與方法相同的語法呼叫委託:委託例項的名稱,後跟包含任何引數的括號。
分配給代表
代表可以通過以下方式分配:
- 分配命名方法
- 使用 lambda 分配匿名方法
- 使用
delegate
關鍵字分配命名方法。
結合代表
可以使用+
運算子將多個委託物件分配給一個委託例項。-
運算子可用於從另一個委託中刪除元件委託。