LoginSignup
5
3

More than 3 years have passed since last update.

【C#】プリプロセッサ

Last updated at Posted at 2020-12-25

◆プリプロセッサとは

 ・コンパイルの直前に行う特定の処理をプリプロセッサ(プリプロセス命令)という。
簡単に言えば、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.png

条件付きシンボル2.png


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

  2. Visual Studio 2015にて確認 

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3