我尝试了以下代码:
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());
}
}
并且看起来在 Release 构建中没有抛出异常,因此不仅删除了对标记为的方法的调用ConditionalAttribute
,而且还消除了参数计算。
这种行为有保证吗?