プリプロセッサ
プリプロセッサを使うと、コンパイル方法によって処理を変えたり、
警告やエラーを定義したり、ソースを見やすくしたりすることができます。
種類 | プリプロセッサ |
---|---|
分岐系 | #if #else #elif #endif #define #undef |
警告・エラー系 | #warning #error #line |
ソース分類系 | #region #endregion |
Debugビルドとそれ以外で処理を変更する
- 例)
-
#if DEBUG //デバッグビルド時の処理 Console.WriteLine("DEBUGです"); #else //デバッグビルド時以外の処理 Console.WriteLine("DEBUGではありません。"); #endif
シンボルの定義により処理を変更する(if~else)
- 例)シンボル「ABCDE」があるかどうかによって処理を変更する
-
#define ABCDE #if ABCDE //シンボル「ABCDE」が定義されている時の処理 Console.WriteLine("ABCDEがあります"); #else //シンボル「ABCDE」が定義されていない時の処理 Console.WriteLine("ABCDEがありません"); #endif
シンボルの定義により処理を変更する(if~elseif~else)
- 例)シンボル「ABC01」「ABC02」があるかどうかによって処理を変更する
-
#define ABC01 #define ABC02 #if ABC01 //シンボル「ABC01」が定義されている時の処理 Console.WriteLine("ABC01 があります"); #elif ABC02 //シンボル「ABC01」が定義されていなくて「ABC02」が定義されている時の処理 Console.WriteLine("ABC02 があります"); #else //シンボル「ABC01」も「ABC02」も定義されていない時の処理 Console.WriteLine("ABC01もABC02もありません"); #endif
シンボルをクリアする
- 例)シンボル「ABC01」を未定義にする
-
#undef ABC01
警告・例外を定義する
- 例)警告(Warning)を定義にする
-
#warning 警告です。
- 例)例外(Error)を定義にする
-
#error 例外です。
警告・例外の行番号を変更する
- 例)行番号を強制的に300行とする
-
#line 300
- 例)強制的に変更した行番号を元に戻す
-
#line default
ソースを分類する
#region ~ #endregion で囲うと、
その部分のソースを展開したり折りたたんだりすることができます。
- 例)
-
// region~endregion で囲う例 #region サンプルメソッド public void SampleMethod() { //処理 } #endregion
#region を開いた状態
#region を閉じた状態