1

デバッグ モードのプロジェクトに、C# 7.3 のみをサポートするコンストラクトが含まれています。ただし、リリース モードでは、プロジェクトは特定のコード行を使用せずに C# 7.0 でビルドする必要があります。

NET472andのようないくつかの標準的なプリプロセッサ シンボルについては知って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

しかし、プロジェクトのプロパティで言語バージョンを変更すると機能しません。

4

1 に答える 1