委托(一)C# 中委托的发展
2014-10-17 21:41
281 查看
在 C# 1.0 中,您通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。 C# 2.0 引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。 C# 3.0 引入了
Lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。 这两个功能统称为“匿名函数”。 通常,针对 .NET Framework 版本 3.5 及更高版本的应用程序应使用 Lambda 表达式。
下面的示例演示了从 C# 1.0 到 C# 3.0 委托创建过程的发展:
C#
Lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。 这两个功能统称为“匿名函数”。 通常,针对 .NET Framework 版本 3.5 及更高版本的应用程序应使用 Lambda 表达式。
下面的示例演示了从 C# 1.0 到 C# 3.0 委托创建过程的发展:
C#
class Test { delegate void TestDelegate(string s); static void M(string s) { Console.WriteLine(s); } static void Main(string[] args) { // Original delegate syntax required // initialization with a named method. TestDelegate testDelA = new TestDelegate(M); // C# 2.0: A delegate can be initialized with // inline code, called an "anonymous method." This // method takes a string as an input parameter. TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); }; // C# 3.0. A delegate can be initialized with // a lambda expression. The lambda also takes a string // as an input parameter (x). The type of x is inferred by the compiler. TestDelegate testDelC = (x) => { Console.WriteLine(x); }; // Invoke the delegates. testDelA("Hello. My name is M and I write lines."); testDelB("That's nothing. I'm anonymous and "); testDelC("I'm a famous author."); // Keep console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } /* Output: Hello. My name is M and I write lines. That's nothing. I'm anonymous and I'm a famous author. Press any key to exit. */
相关文章推荐
- C# 委托的发展 delegate, anonymous method and lambda
- C# 1.0 到 C# 3.0 委托创建过程的发展
- C# 委托的发展,变化
- .NET C# 声明、实例化和使用委托以及委托在 C# 中的发展
- C#2.0 新特性探究(二) 委托与匿名委托
- C#学习笔记-delegate 委托
- C# 中的委托
- C#里的委托和事件实现Observer
- C#2.0 匿名委托
- 用 C++ 实现 C# 中的 委托/事件 (2-delegate event functor)
- 深入理解C#编程中的组件-事件-委托
- [导入]C#委托的具体实现方法
- [转载]C#里的委托和事件实现Observer
- [翻译].NET委托:一个C#睡前故事
- C#体验·委托和事件
- C#2.0 新特性探究之委托与匿名委托
- C#中委托,事件理解入门
- C#2.0 匿名委托
- c#2.0 的委托给我们带来良好的客户体验
- 关于C#中的委托- -