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

时间:2009-10-23 13:21:40

标签: .net visual-studio debugging

对于极端的新手问题感到抱歉,但我在其他地方找不到答案,实际上我自己也没有做过这样的事情(去图 - 我猜这种情况发生在贵公司使用生产环境进行测试时)。

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

2 个答案:

答案 0 :(得分:7)

有几种方法。

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

#if DEBUG
    code that will only compile for Debug
#endif

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

[Conditional("DEBUG")]
public void Log(String message) { ... }

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

您可以在此处详细了解#if指令:C# Preprocessor Directives,以及此处的属性:ConditionalAttribute

答案 1 :(得分:1)

我们在AssemblyInfo.cs中这样做:

#if DEBUG
  [assembly: AssemblyConfiguration("Debug")]
#else
  [assembly: AssemblyConfiguration("Release")]
#endif

这适用于C#。