你如何在ac#程序中加入"IF DEBUG"条件?

xar*_*rzu 5 c# debugging conditional

如何在ac#程序中添加"IF DEBUG"条件,以便在运行时如果在调试模式下运行它将忽略一组代码,如果程序没有运行,则执行一段代码调试模式?可以使用的情况是如果在块的开始处采用时间戳并且在结束时采用另一个时间戳.在运行时几乎没有什么不同.然而,如果你在调试模式中单步调试代码,它们会有很大不同,并且"if block"中的错误条件可能会被启动,从而导致某些代码的不合时宜(双关语)执行.

BFr*_*ree 15

您只需将代码放在这样的块中:

#IF DEBUG

//code goes here

#endif
Run Code Online (Sandbox Code Playgroud)

这不是运行时的事情,这是一个预处理器指令,这意味着该块中的代码甚至不会被编译,也不会被包含.

如果要在运行时检查是否正在调试,可以检查 Debugger.IsAttached

  • 在`Debugger.IsAttached`上,我相信如果你在生产站点上进行远程调试将是真的.是的,我知道你通常不想这样做,但在某些边缘情况下,你无法弄清楚它有什么问题可能会有所帮助.如果您使用远程调试,只需确保您的"调试"代码不会在生产环境中引起问题. (2认同)

Arn*_*rne 8

您还可以使用

[Conditional("Debug")]
Run Code Online (Sandbox Code Playgroud)

方法上的属性。


Ste*_*ers 5

使用预处理器指令#if:

#if debug
    // run in debug mode
#else
    // run if not in debug mode
#endif
Run Code Online (Sandbox Code Playgroud)