#define (C# リファレンス)
#define は、シンボルを定義するために使用します。 次の例に示すように、定義したシンボルを式として #if ディレクティブに渡すと、式は true と評価されます。
#define DEBUG
解説
注意
#define ディレクティブを使用して、通常 C および C++ で行うように定数値を宣言することはできません。C# の定数は、クラスまたは構造体の静的メンバーとして定義することができます。そのような定数がいくつかある場合は、それを保持するための "Constants" クラスを個別に作成することを検討してください。
シンボルを使用して、コンパイル条件を指定できます。 シンボルは、#if または #elif で評価できます。 また、conditional 属性を使用して、条件付きコンパイルを実行することもできます。
シンボルを定義することはできますが、シンボルに値は代入できません。 #define ディレクティブは、ファイル内で、プリプロセッサ ディレクティブではない他の命令よりも前に記述する必要があります。
また、シンボルは /define コンパイラ オプションでも定義できます。 #undef を使うと、シンボルを未定義状態にできます。
/define または #define で定義されたシンボルは、同じ名前の変数とは競合しません。 変数名をプリプロセッサ ディレクティブに渡すことはできません。シンボルはプリプロセッサ ディレクティブだけで評価されます。
#define で定義されたシンボルのスコープは、そのシンボルが定義されたファイル内だけです。
次の例に示すように、#define ディレクティブは、ファイルの先頭で指定する必要があります。
#define DEBUG
//#define TRACE
#undef TRACE
using System;
public class TestDefine
{
static void Main()
{
#if (DEBUG)
Console.WriteLine("Debugging is enabled.");
#endif
#if (TRACE)
Console.WriteLine("Tracing is enabled.");
#endif
}
}
// Output:
// Debugging is enabled.
シンボルの定義を解除する方法の例については、「#undef (C# リファレンス)」を参照してください。
参照
処理手順
方法 : トレースとデバッグを指定して条件付きコンパイルを実行する