比如官方的示例代码
if (Debugger.IsAttached)
{
// 出现未处理的异常;强行进入调试器
Debugger.Break();
}
这样不更好吗?
#if DEBUG
// 出现未处理的异常;强行进入调试器
Debugger.Break();
#endif
我到目前还没有感受到IsAttached给我带来了多大的好处,反而把发布版本不需要的代码编译进去了。
难道仅仅为了不用再在DEBUG和release之间切换?
Debugger 调试
------解决方案--------------------
这个跟条件编译符号不是一回事吧,release编译一样可以用Debugger.IsAttached。比如捕获到异常正常运行情况下弹出提示信息或者写日志就可以,如果加载了调试器就直接抛出方便调试。
可以参考下这个回答http://stackoverflow.com/questions/7073266/if-debug-vs-system-diagnostics-debugger-isattached,
------解决方案--------------------
条件编译时在编译时期做的决策,
if (Debugger.IsAttached)这是在运行时的,
两者场景就不一样