VB.NET Lambda表达式(VB.NET Lambda Expressions)

2019-09-20 01:57发布

如果我有Visual Studio 2008和我的目标一个.NET 2.0的应用程序,我还可以使用Lambda表达式? 我的Lambda表达式的理解是,它的功能内置到编译器,而不是框架,所以我的结论是,我可以在.NET 2.0应用程序中使用LAMBDA。 有人可以告诉我,如果是这样的话?

Answer 1:

是的,这是完全支持的。 只要你不建立一个表达式树或其他参考System.Core程序,System.Xml.Linq的,等等...这是完全合法的向下使用Lambda表达式针对性2.0应用程序。 这是在VS2008(VB9)引入的任何其他编译器特性的真实。

编辑

几个答案错误地指出Lambda表达式是3.5或3.0特征的特征。 Lambda表达式是一个编译器的功能不是框架之一。 他们需要以功能没有框架的支持,它是完全合法的针对性下降到2.0应用程序中使用它们。

你会惹上麻烦的地方是,如果你使用的lambda作为表达式树。 表达式树是两种编译器和框架的功能和确实需要3.5才能正常工作。 但是,你必须努力工作,使这是我们积极努力防止它发生。



Answer 2:

是的,你是对的。 您可以代替匿名方法使用lambda表达式。 编译器将其余的梳理。 尝试这个:

int sum = 0;
Array.ForEach(new[] {1, 2, 3, 4}, x => sum += x);

什么,你不能做的是使用任何的.Net 3.5(即LINQ)的新功能。 这样做需要增加System.Linq的,System.Core程序等。参考文献,这是不存在的。Net 2.0。



Answer 3:

这是行不通的。 使用LINQ要求System.Linq的是框架组件,其.NET 2.0没有的一部分。



文章来源: VB.NET Lambda Expressions