读书人

C#高级程序设计(6)匿名方法

发布时间: 2012-09-19 13:43:54 作者: rapoo

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


读书人网 >C#

热点推荐