委托(C# 编程指南)
2009-10-11 12:48
169 查看
委托(C# 编程指南)
委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示:
C#
public delegate int PerformCalculation(int x, int y);
与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。这样就可以通过编程方式来更改方法调用,还可以向现有类中插入新代码。只要知道委托的签名,便可以分配自己的委托方法。
将方法作为参数进行引用的能力使委托成为定义回调方法的理想选择。例如,可以向排序算法传递对比较两个对象的方法的引用。分离比较代码使得可以采用更通用的方式编写算法。
委托概述
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
本节内容
委托概述
何时使用委托而不使用接口
命名方法
匿名方法
协变和逆变
如何:合并委托
如何:声明、实例化和使用委托
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
1.11 委托
4.2.6 委托类型
7.5.5.2 委托调用
15 委托
请参见
参考
Delegate
概念
C# 编程指南
事件(C# 编程指南)
委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示:
C#
public delegate int PerformCalculation(int x, int y);
与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。这样就可以通过编程方式来更改方法调用,还可以向现有类中插入新代码。只要知道委托的签名,便可以分配自己的委托方法。
将方法作为参数进行引用的能力使委托成为定义回调方法的理想选择。例如,可以向排序算法传递对比较两个对象的方法的引用。分离比较代码使得可以采用更通用的方式编写算法。
委托概述
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
本节内容
委托概述
何时使用委托而不使用接口
命名方法
匿名方法
协变和逆变
如何:合并委托
如何:声明、实例化和使用委托
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
1.11 委托
4.2.6 委托类型
7.5.5.2 委托调用
15 委托
请参见
参考
Delegate
概念
C# 编程指南
事件(C# 编程指南)
相关文章推荐
- 如何:声明、实例化和使用委托(C# 编程指南)
- 委托(C# 编程指南)
- 使用委托(C# 编程指南)
- 委托中的协变和逆变(C# 编程指南)
- 何时使用委托而不使用接口(C# 编程指南)
- 三种实例化委托的方式(C# 编程指南)
- 委托(C# 编程指南)
- 泛型委托(C# 编程指南)
- 合并委托(多路广播委托)(C# 编程指南)
- 如何:声明、实例化和使用委托(C# 编程指南)GOOD
- 如何:声明、实例化和使用委托(C# 编程指南)
- 使用委托(C# 编程指南)
- 委托中的协变和逆变(C# 编程指南)
- 带有命名方法的委托与带有匿名方法的委托(C# 编程指南)
- 何时使用委托而不使用接口(C# 编程指南)
- c#编程指南(三) 泛型委托(Generic Delegate)
- 使用委托(C# 编程指南)
- 何时使用委托而不使用接口(C# 编程指南)
- 何时使用委托而不使用接口(C# 编程指南)
- 委托匿名方法(C# 编程指南)