本文内容
- 委托和泛型委托
- 委托发展:C# 中委托的发展
- 泛型委托
- 委托
- 声明(定义)委托
- 实例化委托
- 调用委托
- 用 Lambda表达式创建和实例化委托
- .NET 提供的委托
- Action 委托
- Func 委托
- Predicate 委托
- 参考资料
- 修改记录
下载更多 Demo
委托和泛型委托
委托实现了函数指针,这个函数指针跟 C 的函数指针不同,它是类型安全的,确保被调用的方法签名是正确的。只要方法签名跟委托签名匹配,给委托的实例可以是实例方法,或是静态方法。
为什么要有这个东西?我们对把数据作为函数参数很熟悉,但有时,某个方法的操作不是针对数据,而是针对另一个方法。比如,线程,用线程去执行一个方法,或是代码段;再比如,事件,事件是委托的特例,等等。
委托发展:C# 中委托的发展
- C# 1.0 中,通过用在其他地方定义的方法显式初始化委托来创建委托的实例。
- C# 2.0 引入了匿名方法(anonymous method)的概念,用匿名方法初始化委托,在委托中执行未命名的内联语句块。
- C# 3.0 引入了 Lambda 表达式,与匿名方法的概念类似,但更具表现力并且更简练。匿名方法和 Lambda 表达式统称为“匿名函数”,类似闭包(Closure)特性。
- 通常,针对 .NET Framework 3.5 及更高版本应使用 Lambda 表达式。
下面的示例演示了从 C# 1.0 到 C# 3.0 委托创建过程的发展:
示例1:
System.Console.ReadKey();
}
}
}