工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C# - プリプロセッサ ディレクティブ

プリプロセッサ ディレクティブは、実際のコンパイルが開始される前に情報を前処理するようコンパイラに指示します。

すべてのプリプロセッサ ディレクティブは # で始まり、空白文字のみが行のプリプロセッサ ディレクティブの前に表示されます。プリプロセッサ ディレクティブはステートメントではないため、セミコロン (;) で終わりません。

C# コンパイラには個別のプリプロセッサがありません。ただし、ディレクティブはあたかも存在するかのように処理されます。 C# では、条件付きコンパイルを支援するためにプリプロセッサ ディレクティブが使用されます。 C および C++ ディレクティブとは異なり、マクロの作成には使用されません。プリプロセッサ ディレクティブは、行の唯一の命令でなければなりません。

C# のプリプロセッサ ディレクティブ

次の表に、C# で使用できるプリプロセッサ ディレクティブを示します −

Sr.No. プリプロセッサ ディレクティブと説明
1

#define

シンボルと呼ばれる一連の文字を定義します。

2

#undef

シンボルを定義解除できます。

3

#if

1 つまたは複数のシンボルをテストして、true と評価されるかどうかを確認できます。

4

#else

#if とともに複合条件ディレクティブを作成できます。

5

#elif

複合条件ディレクティブを作成できます。

6

#endif

条件付きディレクティブの終了を指定します。

7

#行

これにより、コンパイラの行番号と (オプションで) エラーと警告のファイル名出力を変更できます。

8

#エラー

コード内の特定の場所からエラーを生成できます。

9

#警告

コード内の特定の場所からレベル 1 の警告を生成できます。

10

#地域

Visual Studio Code Editor のアウトライン機能を使用するときに、展開または折りたたむことができるコード ブロックを指定できます。

11

#endregion

#region ブロックの終わりを示します。

#define プリプロセッサ

#define プリプロセッサ ディレクティブは、記号定数を作成します。

#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 ディレクティブを使用して、条件付きディレクティブを作成できます。条件付きディレクティブは、1 つまたは複数のシンボルをテストして、それらが true と評価されるかどうかを確認するのに役立ちます。それらが true と評価される場合、コンパイラは #if と次のディレクティブの間のすべてのコードを評価します。

条件付きディレクティブの構文は −

#if symbol [operator symbol]...

ここで、シンボル テストするシンボルの名前です。 true と false を使用するか、記号の前に否定演算子を追加することもできます。

演算子記号 シンボルの評価に使用される演算子です。演算子は次のいずれかになります −

記号と演算子を括弧でグループ化することもできます。条件付きディレクティブは、デバッグ ビルド用にコードをコンパイルする場合、または特定の構成用にコンパイルする場合に使用されます。 #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言語

  1. C# Hello World - 初めての C# プログラム
  2. C# のキーワードと識別子
  3. C# 変数と (プリミティブ) データ型
  4. C# 演算子
  5. C# のビット単位およびビット シフト演算子
  6. C# の基本的な入力と出力
  7. C# 式、ステートメント、およびブロック (例付き)
  8. C# コメント
  9. C# switch ステートメント
  10. C# 三項 (? :) 演算子
  11. C# プリプロセッサ ディレクティブ