【发布时间】:2014-02-10 01:22:17
【问题描述】:
我维护一个 .NET 2.0 库(目前使用 Visual Studio 2013)。
我对库的代码使用了代码检查工具,当该工具建议使用 ?? 运算符或 lambdas 而不是某些代码时,我感到很惊讶。
当我应用建议的编辑并在此之后成功构建库时,我更加惊讶。
为什么 Target Framework 设置为 .NET Framework 2.0 的库可以在其代码中使用 C# 的新功能构建?
为较旧的 .NET Framework 版本构建时使用较新的 C# 功能是否安全?我的意思是,该库的用户只能拥有 .NET Framework 2.0,我希望他们能够使用该库,即使我在其代码中使用 lambda。
【问题讨论】:
-
Re Lambdas:看看here。只要确保团队中的其他人都在使用 VS >= 2010
-
??是 C#2 功能。 Lambda 是一种编译器功能,因此您可以在面向 .Net 2 时使用它们,但在 .Net 3.5 中定义的委托类型(Action、Func等)将不可用。 -
卡在一个 9 年前的免费库版本上是非常低效的。你的工具供应商当然没有这个问题:)
-
@HansPassant 是的,我很乐意从 2.0 迁移到 4.0(至少),但是该库被使用旧版本开发工具的人使用,我可以将它们抛在后面。不过,也许这是另一个版本的鸡和蛋问题。
标签: c# .net visual-studio