C# プリプロセッサ ディレクティブ
プリプロセッサ ディレクティブは、実際のコンパイルが開始される前に情報を前処理するようにコンパイラーに指示します。
すべてのプリプロセッサ ディレクティブは # で始まります。また、行内では、プリプロセッサ ディレクティブの前に空白文字のみを使用できます。プリプロセッサ ディレクティブはステートメントではないため、セミコロン (;) で終わりません。
C# コンパイラには別個のプリプロセッサがありませんが、命令は別個のプリプロセッサがあるかのように処理されます。 C# では、条件付きコンパイルで機能するためにプリプロセッサ ディレクティブが使用されます。 C および C++ ディレクティブとは異なり、マクロの作成には使用されません。プリプロセッサ ディレクティブは、行上の唯一のディレクティブである必要があります。
C# プリプロセッサ ディレクティブ リスト
次の表は、C# で使用できるプリプロセッサ ディレクティブのリストです。
プリプロセッサ ディレクティブ
説明
#define シンボル文字となる一連のシンボルを定義するために使用されます。
#undef シンボルの定義を解除するために使用されます。
#if シンボルが真かどうかをテストするために使用されます。
#else 複合条件命令を作成するために使用され、#if と一緒に使用されます。
#elif 複合条件付き命令を作成するために使用されます。
#endif 条件付き命令の終了を指定します。
#line コンパイラーの行数と、(オプションで) エラーと警告が出力されるファイル名を変更できます。
#error コード内の指定された場所からエラーを生成できます。
#warning コード内の指定された場所からレベル 1 の警告を生成できます。
#region Visual Studio コード エディターのアウトライン機能を使用するときに、展開可能なコード ブロックまたは折りたたまれたコード ブロックを指定できます。
#endregion #region ブロックの終わりを示します。
#define preprocessor
#define preprocessor ディレクティブは、シンボリック定数を作成します。
#define を使用すると、 #if ディレクティブに渡される式としてシンボルを使用することにより、式が true を返すようにシンボルを定義できます。その構文は次のとおりです:
#define symbol
次のプログラムはこれを示しています:
#define PI using System; namespace PreprocessorDAppl { class Program { static void Main(string[] args) { #if (PI) Console.WriteLine("PI is defined"); #else Console.WriteLine("PI is not defined"); #endif Console.ReadKey(); } } }
上記のコードがコンパイルされて実行されると、次の結果が生成されます:
PI is defined
条件ディレクティブ
#if ディレクティブを使用して A を作成できます。条件付きディレクティブ。条件付き命令は、シンボルが true かどうかをテストするために使用されます。 true の場合、コンパイラは #if と次の命令の間のコードを実行します。
条件付き命令の構文:
#if symbol [operator symbol]...
ここで、symbol はテストされるシンボルの名前です。 true と false を使用したり、記号の前に否定演算子を配置したりすることもできます。
演算子シンボルは、シンボルを評価するために使用される演算子です。 can 演算子は、次の演算子のいずれかになります:
== (等価)
!= (不等式)
&& (and)
|| (or)
括弧を使用して記号と演算子を結合することもできます。グループを作ります。条件付きディレクティブは、デバッグ ビルドでコードをコンパイルするとき、または指定された構成をコンパイルするときに使用されます。 #if ディレクティブで始まる条件付きディレクティブは、#endif ディレクティブで明示的に終了する必要があります。
次のプログラムは、条件付きディレクティブの使用方法を示しています:
#define DEBUG #define VC_V10 using System; public class TestClass { public static void Main() { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V10 is defined"); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG and VC_V10 are defined"); #else Console.WriteLine("DEBUG and VC_V10 are not defined"); #endif Console.ReadKey(); } }
上記のコードがコンパイルされて実行されると、次の結果が生成されます:
DEBUG and VC_V10 are defined
上記は、[c# チュートリアル] C# プリプロセッサ ディレクティブの内容です。 、その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。