デバッグ モードのプロジェクトに、C# 7.3 のみをサポートするコンストラクトが含まれています。ただし、リリース モードでは、プロジェクトは特定のコード行を使用せずに C# 7.0 でビルドする必要があります。
NET472
andのようないくつかの標準的なプリプロセッサ シンボルについては知ってNETSTANDARD2_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
しかし、プロジェクトのプロパティで言語バージョンを変更すると機能しません。