次のコードを試しました:
class Magic {
[Conditional("DEBUG")]
public static void DoMagic( int stuff )
{
}
public static int ComputeMagic()
{
throw new InvalidOperationException();
}
}
class Program
{
static void Main(string[] args)
{
Magic.DoMagic(Magic.ComputeMagic());
}
}
リリースビルドでは例外がスローされないように見えるため、 でマークされたメソッドへの呼び出しConditionalAttribute
が削除されるだけでなく、パラメーターの計算も削除されます。
そのような動作は保証されていますか?