我们升级到 VS 2010,但我们还没有升级到 .NET 4.0。我们所有的项目仍然明确针对 3.5。
今天,一位开发人员 checkin 了如下所示的代码:
delegate T Generator<out T>();
据我所知,“in T”和“out T”是 C# 4.0 的特性。根据我们的构建服务器,它没有安装 .NET 4.0,我是对的。 checkin 破坏了构建。但是,为什么要在他的机器上构建它呢?为什么VS只是忽略了项目的目标框架?
其他 C# 4.0 功能,如 dynamic 关键字,不是在开发人员的机器上构建的。
最佳答案
为避免这种情况,请使用 Project + Properties、Build 选项卡、向下滚动、Advanced、Language Version = "C# 3.0"
关于visual-studio-2010 - 为什么即使在面向 3.5 时也允许某些 C#4 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2760827/