我维护一个 .NET 2.0 库(目前使用 Visual Studio 2013)。
我对库的代码使用了代码检查工具,当该工具建议使用 ??
运算符或 lambda 而不是某些代码时,我感到很惊讶。
当我应用建议的编辑并且之后成功构建库时,我更加惊讶。
为什么 Target Framework
设置为 .NET Framework 2.0
的库可以在其代码中使用 C# 的更新功能构建?
在为较旧的 .NET Framework 版本构建时使用较新的 C# 功能是否安全?我的意思是,该库的用户只能拥有 .NET Framework 2.0,我希望他们能够使用该库,即使我在它的代码中使用了 lambda。
最佳答案
.NET 2.0 和 C# 2.0 是两个不同的东西。在您的情况下,您完全可以拥有一个 .NET 2.0 库(以 CLR 2.0 为目标)并使用支持例如 lambda 表达式的 C# 3.0 编译器。
因此,您应该区分编译器版本和 objective-c LR 版本。由于您使用的是 VS 2013,因此您可以使用更新版本的编译器。
Is it safe to use newer C# features when building for older .NET Framework versions?
是的,绝对安全。生成的程序集仍然以 CLR 2.0 为目标,并且可以在这个旧版本的 CLR 上正常运行。
关于c# - 在为较旧的 .NET Framework 版本构建时使用较新的 C# 功能是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21662062/