最近必要になったので。
虫を取り除く(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でビルドした場合。
おいしい餃子
ただし、これで出来上がった製品は殺虫剤を噴出はしないが、隠し持っている状態になる。
コメント
コメントを投稿