【发布时间】:2016-10-11 09:20:16
【问题描述】:
是否可以在编译时通过预处理指令检测当前 C# 版本是否为 6 或更高版本?
我想做这样的事情:
var myVar = ...;
string name;
#if VERSION_6_OR_MORE
name = nameof(myVar);
#else
name = "myVar";
#endif
我使用 Visual Studio 2015 和 C# 6,所以我可以使用 nameof()。然而,其他想要编译此代码的人可能正在使用旧版本,其中不存在 nameof()。
我想使用预处理器指令,这样我就可以将 nameof() 保留在 C# 6 中,但不使用该版本的其他人也可以编译它。
【问题讨论】:
-
为什么要做这样的事情?
-
@Kris 不,它不是重复的。框架版本与 C# 版本无关。您可以使用 C# 6 定位 .NET 2.0,反之亦然。
-
想象跟踪你同事发现的一个错误,当你有 50 个这样的块时你无法重现
标签: c#