我在调试模式下的项目包含仅支持 C# 7.3 的构造。但在发布模式下,项目应基于 C# 7.0 构建,无需特定代码行。
我知道一些标准的预处理器符号,例如NET472
andNETSTANDARD2_0
但它用于处理不同的标准及其版本。它对语言版本条件无用。
public static Expression<TDelegate> CreateExpression<TDelegate>()
where TDelegate : Delegate // Work in 7.3 and above
{ ... }
我期待一些技巧,比如
#if CSharpVersion >= 7.3
where TDelegate : Delegate
#endif
现在我使用该语句:
#if DEBUG
where TDelegate : Delegate
#endif
但如果我在项目属性中更改语言版本,它将不起作用。