代表

摘要

一个委托类型是表示一个特定的方法的签名类型。此类型的实例是指具有匹配签名的特定方法。方法参数可以具有委托类型,因此这一个方法可以传递对另一个方法的引用,然后可以调用该方法

内置代表类型:Action<...>Predicate<T>Func<...,TResult>

System 命名空间包含 Action<...>Predicate<T>Func<...,TResult> 委托,其中“…”表示 0 到 16 个泛型类型参数(对于 0 参数,Action 是非泛型的)。

Func 表示返回类型匹配 TResult 的方法,Action 表示没有返回值(void)的方法。在这两种情况下,附加的泛型类型参数按顺序匹配方法参数。

Predicate 表示布尔返回类型的方法,T 是输入参数。

自定义委托类型

可以使用 delegate 关键字声明命名的委托类型。

调用代表

可以使用与方法相同的语法调用委托:委托实例的名称,后跟包含任何参数的括号。

分配给代表

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

  • 分配命名方法
  • 使用 lambda 分配匿名方法
  • 使用 delegate 关键字分配命名方法。

结合代表

可以使用+运算符将多个委托对象分配给一个委托实例。- 运算符可用于从另一个委托中删除组件委托。