如何标记我的代码中的某些行,因为它不会在发布中运行?

时间:2011-12-12 15:29:50

标签: c#

我想在调试时抛出异常但在发布模式下我不想抛出它们。我将它们记录到EventLog中。这是我的问题的根源,但如果我在C和Delphi中没有错,那么有一些指令要做到这一点。

在C#中是否有任何方法(指令或其他东西)可以忽略调试模式或发布模式中的行?

3 个答案:

答案 0 :(得分:8)

你可以这样做:

#if DEBUG
    Console.WriteLine("Debug version");
#endif

http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx

答案 1 :(得分:4)

出于您的目的(日志记录),您可能也对ConditionalAttribute感兴趣。它允许您将整个方法标记为“在发布版本中删除对此方法的所有调用”。

如果您在代码中的许多不同位置进行日志记录,这比在每个呼叫站点周围添加#if DEBUG要简单得多。

答案 2 :(得分:3)

使用#if DEBUG指令(以#endif结尾)。在调试模式下运行应用程序时定义DEBUG常量(应在项目属性的 Build 选项卡下检查定义DEBUG常量)。