您是否可以标记仅包含在Debug构建中的代码段?

Dan*_*Tao 2 .net debugging visual-studio

对不起,极端的新手问题,但我无法在别处找到答案,并没有实际做过这样的事我自己(去图 - 我想,当你的公司使用的生产环境中进行测试出现这种情况).

如果Visual Studio提供了一些机制来指定某些代码段(例如,日志记录)应仅包含在Debug构建中,那将是很好的.这存在吗?我对C#和VB.NET以及VS 2005中的方法感兴趣,以防万一.

ang*_*son 7

有几种方法.

要将代码的特定部分标记为仅包含在Debug版本中,可以在C#中执行此操作:

#if DEBUG
    code that will only compile for Debug
#endif
Run Code Online (Sandbox Code Playgroud)

如果要避免这种情况,可以使用属性标记方法:

[Conditional("DEBUG")]
public void Log(String message) { ... }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果您没有编译Debug,则会自动从已编译的代码中删除对此方法的调用.这有一些限制.例如,如果您使用refout参数,或返回值,则您不能使用它.

您可以在此处阅读有关#if指令的更多信息:C#预处理程序指令,以及此处的属性:ConditionalAttribute.