C# - 文法など - プリプロセッサ

クラウディア 
1. 概要
2. 先頭でなくてもいいのだ
3. #if DEBUG

1. 概要

 うっかり、度忘れしちゃいそうになった床をメモしておきます。

2. 先頭でなくてもいいのだ

 これは、「VC++」にも共通するのですが、「Visual Studio(Code じゃない方)」を使用していて、「#」を打ったとたんに、オートフォーマットで「#」が行頭へ移動しちゃうので、プリプロセス文は、行頭から書かないとまずいと思いがちです。  メソッドの途中で、プリプロセスを定義しようとして、行頭からはじめちゃうと、やたら可読性の低いソースになってしまいます。  しかし、「プリプロセス文は、行頭から始めなくてもいい」のだ。  うそだと思ったら、行頭でない箇所から「#」をはじめて、ビルド・実行してみんさい。  ちゃんと思い通りに動くはずです。  これ知っておくと、可読性の高いソースになりますことよ。

3. #if DEBUG

 実際に使用するプログラムで、リリース時には動作しない方がいいが、デバッグ時には動作させたいような処理があります。  端的に言うと、デバッグ用のログだったりします。  これは、わたし頻繁に使用します。

#if DEBUG
デバッグ時の処理
#endif
 と書けば、「デバッグ時の処理」は、デバッグビルドしたときだけ実行されます。  「Visual Studio(Code じゃない方)」で編集していると、構成が「Debug」のときは、「#if」~「#endif」内が活性化されているし、構成が「Release」のときは、非活性になっているので、わかりやすいです。