委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值。
C#编程指南
一个 delegate object 一次可以搭载多个方法,而不是一次一个。当我们唤起一个搭载了多个方法的 delegate,所有方法以其“被搭载到 delegate object 的顺序”被依次唤起
一个 delegate object 所搭载的方法并不需要属于同一个类。一个 delegate object 所搭载的所有方法必须具有相同的原型和形式(相同的返回类型和参数列表)。然而,这些方法可以即有 static 也有 non-static,可以由一个或多个不同类的成员组成。
一个 delegate type 的声明在本质上是创建了一个新的 subtype instance,该 subtype 派生自 .NET library framework 的 abstract 八色 classes Delegate 或 MulticastDelegate,它们提供一组 public methods 用以询访 delegate object 或其搭载的方法。
Stanley B. Lippman
委托是函数的封装,它代表一“类”函数。它们都符合一定的签名:拥有相同的参数列表、返回值类型。同时,委托也可以看成是对函数的抽象,是函数的“类”。此时,委托的实例将代表一个具体的函数。
对委托的一个总结