/ / const値に基づいてC#コンパイラエラーを強制する - c#、compiler-construction

const値に基づいて強制的にC#コンパイラエラー - c#、compiler-construction

私はC#クラスで定義されたプライベートconst intを持っています。このint mod 3!= 0の値を指定すると、エラーが発生しコンパイルが失敗します。これをどのように行うことができますか?

回答:

回答№1は4

ティモシー・コウリがそれを得ました。それはこれでなければなりません:

int compilerError = 1 / (MY_CONST % 3 == 0 ? 1 : 0);

回答№2については2

そこには #エラー 生成のためのプリプロセッサ指令コンパイル時エラーがある場合、const値の存在に基づく方法はありません。値が割り当てられない "DEBUG"のようなコンパイラシンボルでのみ動作します。


回答№3の場合は1

申し訳ありませんが、私が下に言ったコードは "仕事を得ませんでしたが、これは:)

int pointless = 1 / (MY_CONST % 3);

これがうまくいく理由は、コンパイル時に「ゼロになる」エラーが発生する可能性があるためです。あなたの "MY_CONST"フィールドは、(一度3で修飾された)0に等しくないものでなければなりません。


回答№4の場合は-1

これを試して:

if (MY_CONST % 3 != 0) { int compilerError = 1 / 0; }