【发布时间】:2021-01-31 07:10:41
【问题描述】:
有没有办法添加一个预处理器指令来比较编译器使用的 C# 版本?
例如:
public T MyMethod<T>()
{
#if CS_7
return default; // Feature 'default literal' is not available in C# 7.0. Please use 7.1 or greater.
#else
return null; // Ignore the fact that this won't work, it isn't the point of the question
#endif
}
.NET 版本会是这里的出路吗?不会有同一个项目使用的编译器不同的情况吗? (即如果不同的员工使用不同版本的 Visual Studio)
【问题讨论】:
-
一旦编译完成,C# 版本就无关紧要了。您打算以源代码形式提供此内容吗?
-
该项目被用作跨多个其他项目的子模块(git),所以我猜答案是肯定的?
-
是否有理由需要将其编译到每个项目中,而不是在单独的程序集中引用?设置私有 NuGet 服务器(本地或托管)并向其发布包非常容易。
-
我可以向我的上级提及这个想法,但我无法做出这个决定。
标签: c# version preprocessor-directive