#if(DEBUG)VS System.Diagnostics.Debugger.IsAttached

Sar*_*nyu 32 .net visual-studio

使用#if (DEBUG)System.Diagnostics.Debugger.IsAttached在visual studio中有什么不同?是否有DEBUG设置标志但没有附加调试器的情况,或者在DEBUG未设置标志时可以附加调试器的情况?

Pau*_*ell 42

#if DEBUG确保代码在发布版本中根本不包含在程序集中.此外,代码包含#if DEBUG在调试版本中一直运行 - 而不仅仅是在调试器下运行时.

Debugger.IsAttached表示包含调试或发布版本的代码.并且可以附加调试器以将版本发布到.

将两者结合使用是很常见的.#if DEBUG通常用于记录日志,或减少内部测试版本中的异常处理.Debugger.IsAttached往往只是用于决定是否吞下异常或向程序员展示它们 - 更多的是程序员的帮助而不是其他任何东西.


Dav*_*own 11

#if DEBUG是一个编译时检查,这意味着如果DEBUG定义了预处理程序符号,它所包含的代码将仅包含在输出程序集中.Debugger.IsAttached是一个运行时检查,因此调试代码仍然包含在程序集中,但只有在调试程序附加到进程时才会执行.


HAB*_*ABO 5

#if (DEBUG) 是一个预处理程序指令,允许您有条件地编译代码.

System.Diagnostics.Debugger.IsAttached 提供运行时值,指示调试器是否附加到进程.