匿名方法在委托实例化中的应用
2011-09-14 19:30
190 查看
1、匿名方法的定义
所谓匿名方法,就是没有实际方法声明的委托实例,或者说它们的定义是直接内嵌在代码中的,仅有参数列表和方法体,没有返回值类型和方法名。
匿名方法这一特性仅在c#2.0及更高的版本中得到支持。
2、代码示例
下面的示例将用到“C# 委托的应用1”这一博文中的例子 冒泡排序
ComparisonHandler comparisonMethod=delegate (int first,int second) { return first >second ;};
实例化委托时用到了匿名方法该方法仅有参数列表和方法体,该匿名方法的功能等同于方法GreaterThan()的功能。
delegate关键字指定了一个“委托字面值”类型,这类似于用引号来指定一个字符串字面值。
调用BubbleSort方法时可用如下语句:BubbleSort(items,comparisonMethod); 甚至可以再不声明comparisonMethod变量的前提下直接调用方法BubbleSort,如下:
BubbleSort(items,delegate(int first,int second){ return first >second});
总之,自c#2.0开始,可以利用匿名方法这一新特性来声明一个没有名字的方法,该方法将被自动转换成一个委托。
3、无参数的匿名方法
没有参数的匿名方法可以省略参数列表 例如:delegate { return Console.ReadLine !=“”;}
所谓匿名方法,就是没有实际方法声明的委托实例,或者说它们的定义是直接内嵌在代码中的,仅有参数列表和方法体,没有返回值类型和方法名。
匿名方法这一特性仅在c#2.0及更高的版本中得到支持。
2、代码示例
下面的示例将用到“C# 委托的应用1”这一博文中的例子 冒泡排序
ComparisonHandler comparisonMethod=delegate (int first,int second) { return first >second ;};
实例化委托时用到了匿名方法该方法仅有参数列表和方法体,该匿名方法的功能等同于方法GreaterThan()的功能。
delegate关键字指定了一个“委托字面值”类型,这类似于用引号来指定一个字符串字面值。
调用BubbleSort方法时可用如下语句:BubbleSort(items,comparisonMethod); 甚至可以再不声明comparisonMethod变量的前提下直接调用方法BubbleSort,如下:
BubbleSort(items,delegate(int first,int second){ return first >second});
总之,自c#2.0开始,可以利用匿名方法这一新特性来声明一个没有名字的方法,该方法将被自动转换成一个委托。
3、无参数的匿名方法
没有参数的匿名方法可以省略参数列表 例如:delegate { return Console.ReadLine !=“”;}
相关文章推荐
- 委托的匿名方法,以及在协变与逆变中的应用
- C#中委托的匿名方法,及其在协变与逆变中的应用
- 命名的方法 匿名方法 对委托进行实例化
- 委托、匿名方法、Lambda表达式的演进
- 委托 匿名方法 Lambda表达式 总结(yuananl)
- 委托、匿名方法、事件学习小结
- C#控制台基础 返回类型为void的无参数委托与匿名方法
- 匿名方法、委托和Lambda表达式区分演示(图文解释)
- 用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树
- 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件
- 温故而知新-----带有命名方法的委托和带有匿名方法的委托
- 委托的匿名方法简单例子(2。0实现)
- 委托、匿名方法、Lambda表达式的演进
- 深入理解 c# 第五章 匿名方法用于Action<T>委托类型 反转字符 求平方根 求平均数
- C#中的委托,匿名方法和Lambda表达式
- 关于委托:异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }
- Delegates, Events, and Anonymous Methods 委托、事件与匿名方法
- 【转】C#中的委托,匿名方法和Lambda表达式
- 匿名方法-简化的委托-来自王涛《你必须知道的.NET》
- 委托(3.匿名方法)