ConditionalAttribute和Debugger.IsAttached有什么区别? 哪种机制更好用?
如果我写:
[Conditional("DEBUG")]
private void Method()
{
//Code
}
将是相同的:
private void Method()
{
if (Debugger.IsAttached)
{
//Code
}
}
答案 0 :(得分:3)
该属性适用于编译。如果未设置DEBUG标志,则从生成的二进制文件中省略该方法。
附加调试器检查是否附加了调试器。但调试器可以附加到任何类型的构建(发布,调试等)
由于它们完全不同,我认为不能比较哪一个“更好”。他们做不同的事情。如果你想要一个对生产版本没有影响(例如性能)的调试版本的东西,那么使用该属性。