语言版本和.net版本

8 浏览
0 Comments

语言版本和.net版本

我的问题类似于这个问题,但我想知道在旧版本的.NET中是否可以使用不同版本的C#。在我的理解中,这应该是可能的,因为例如Lambda与框架本身无关,它只是C#(以及VB,但我只谈论C#)。

问题是,我无法测试这个问题,因为我只有在工作中使用VS 2005,而且我家里的电脑坏了。

那么,在VS 2010/2012中创建一个.NET 2.0项目时,我能否使用Lambda/Linq等功能呢?

admin 更改状态以发布 2023年5月23日
0
0 Comments

如果您将目标框架设置为2.0并使用Visual Studio 2010,则可以使用Lambda表达式。但是,您不能使用LINQ开箱即用,因为该框架是在.Net 3.5中引入的。

您应该看到此文章:Jon Skeet的“解开版本”的文章

0
0 Comments

那么,在VS 2010/2012中创建一个.NET 2.0项目时,我能使用Lambda/Linq等吗?

关于这一点,我有一个页面。一些功能是基于框架(或CLR)特定的,而一些则不是。

例如,你可以使用Lambda表达式、匿名类型和自动实现的属性在.NET 2.0中完全没有问题。

如果你提供了另一种实现,例如LINQBridge,你可以使用LINQ to Objects。其他的LINQ提供程序(例如LINQ to SQL等)可能可以使用来自Mono的库,但个人认为如果可能的话会升级到更高版本的框架。

您将无法使用来自C# 4的动态类型,因为它需要.NET 4中才有的类型,这些类型似乎不容易以兼容的方式向后移植。(可能是可行的,因为至少有一个针对.NET 3.5的DLR版本,但它是否能与C# 4编译器很好地协作是另一回事。)

0