1.定义:
委托(delegate)类型和类相似,也是一种引用类型,由委托类型定义委托对象(简称委托)。
2.什么是委托?
委托与C/C++中的函数指针相似,与之不同的是委托是面向对象的、类型安全的和保险的。一旦委托分配了 方法,委托将与该方法具有完全相同的行为。即C#中提供具有函数指针功能的结构构造,通过使用Delegate类,委托实例可以封装属于可调用实体的方法。委托的使用可以像其他任何方法一样,具有参数和返回值。
3.特点:
注意:委托类型和类也存在明显的差异,类可以包含数据,而委托类型包含的只是指向方法的返回类型和参数列表。
另外,委托类是密封的,不能从Delegate类中派生委托类型,也不可能从中派生自定义类。
- 委托类似于C/C++函数指针,但它的类型是安全的。
- 委托允许将方法作为参数进行传递。
- 委托可用于定义回调方法。
- 委托可以将多个方法关联在一起。例如,可以对一个事件可以调用多个方法。
- 委托所指向的方法不需要与委托签名精确匹配。