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 !=“”;}