最近必要になったので。 虫を取り除く(Debug)には殺虫剤(デバッグ用のメソッド)が必要になる場合があるが、それが製品(Releace)にも含まれていたら大変である。 デバッグ用メソッドはDebugビルドの場合のみビルドされるようにしたい そこで、属性 ConditionalAttribute を利用する。 この属性をデバッグ用メソッドに付け、conditionStringに文字列"DEBUG"を指定する。これによってこのメソッドはコンパイル定数 DEBUG を定義してビルドした場合にのみ実行されるようになる。(Visual Studioの規定ではDebugビルド時にはコンパイル定数 DEBUG が定義されている。) using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { ReleaseMethod(); DebugMethod(); } static void ReleaseMethod() { Console.WriteLine("おいしい餃子"); } [System.Diagnostics.Conditional("DEBUG")] static void DebugMethod() { Console.WriteLine("殺虫剤 噴出中"); } } } Debugでビルドした場合。 おいしい餃子 殺虫剤 噴出中 Releaceでビルドした場合。 おいしい餃子 ただし、これで出来上がった製品は殺虫剤を噴出はしないが、隠し持っている状態になる。