C#高级程序设计(六)——匿名方法
在 2.0 之前的C# 版本中,声明委托的唯一方法是使用命名方法。 C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方式。 不过,本主题中有关匿名方法的信息同样也适用于 Lambda 表达式。 有一种情况下,匿名方法提供了 Lambda 表达式中所没有的功能。 您可使用匿名方法来忽略参数列表。 这意味着匿名方法可转换为具有各种签名的委托。 这对于 Lambda 表达式来说是不可能的。
匿名方法提供了用代码块声明委托对象的功能,如果使用匿名方法,则不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。
List<MethodInvoker> list = new List<MethodInvoker>(); for (int index = 0; index < 5; index++) { list.Add(delegate { Console.WriteLine(index); index++; }); } foreach (MethodInvoker t in list) { t(); } list[0](); list[0](); list[0](); list[1]();Output:5678910111213