【C#】プリプロセッサ


◆プリプロセッサとは

 ・コンパイルの直前に行う特定の処理をプリプロセッサ(プリプロセス命令)という。
簡単に言えば、if文のような処理を「#if シンボル名 ~ #endif」のように使用する。

◇プリプロセッサは下記のように利用する。

#define PreTest1
#define SampleQiita2
using System;

class program
{
    static void Main(string[] args)
    {
#if PreTest1
        Console.WriteLine("#PreTest1がシンボルとして定義されています。");
#elif PreTest2
        Console.WriteLine("#PreTest2がシンボルとして定義されています。");
#else
        Console.WriteLine("OreTestのシンボルは何も定義されていません。");
#endif

#if SampleQiita1
        Console.WriteLine("#SampleQiita1がシンボルとして定義されています。");
#elif SampleQiita2
        Console.WriteLine("#SampleQiita2がシンボルとして定義されています。");
#else
        Console.WriteLine("SampleQiitaシンボルは何も定義されていません。");
#endif
    }
}
実行結果
#PreTest1がシンボルとして定義されています。
#SampleQiita2がシンボルとして定義されています。

■#defineは必ず、コードの先頭(一番上)に記載する。1
■#define ○○ の箇所を指定したいシンボル名に変更すると該当箇所が選択され、
それ以外はグレーアウトする2(コメントアウトしたときのような状態)


主に使用されているプリプロセッサコード一覧

★#define
★#if    ★#else   ★#elif
★#undef  ★#warning ★#error ★#line
★#region  ★#endregion
★#pragma ★#pragma warning   ★#pragma checksum



#defineを使用せずシンボル定義をする方法

Visual Studio 20105の上部タブの「プロジェクト」→「[プロジェクト名]のプロパティ」→「ビルド」→「全般」→「条件付きコンパイルシンボル(Y)」
(シンボルはスペース区切りにすることによって複数選択可能)


  1. それ以外に記載するとエラーが発生するので注意 

  2. Visual Studio 2015にて確認