【问题标题】:C# Compiler DirectivesC# 编译器指令
【发布时间】:2011-02-24 14:27:07
【问题描述】:

我正在查看一些 C# 代码,并且遇到了以下语句:

#if DEBUG
    // Do something here
#else
    // Do something else
#endif

我假设 DEBUG 将在某处定义如下:

#define DEBUG

但我找不到这样的定义,尽管代码的行为似乎就像是设置的一样。 DEBUG 是不是一个特例,如果是,它是如何设置/取消设置的?

【问题讨论】:

    标签: c# compiler-directives


    【解决方案1】:

    关于项目,请转至Properties -> Build。一般来说,您可以选择同时定义DEBUGTRACE

    【讨论】:

    • 那么拥有这些复选框而不是设置#define DEBUG 的优势/原因是什么?
    • @pm_2 - 中心性。就是这样。
    【解决方案2】:

    使用#define 指令或compiler settings 设置。在调试版本中定义 DEBUG 是很常见的,因此您可以像示例中那样有条件地编译一些代码。

    您可以在MSDN 上阅读更多相关信息。

    【讨论】:

    • 不要发布 Visual Studio 2003/.NET 1.1 链接!读者跟随链接,然后想要跟随链接中的链接,最终卡在 2003 年。
    • 是的,抱歉,我刚刚解决了这个问题。愚蠢的谷歌的错,我启用了低带宽版本,所以我没有立即看到。当然所有的借口:)
    【解决方案3】:

    如果您查看项目属性,您会发现调试选项 DEBUG 然后你可以在 C# 中做:

    [Conditional("Debug")]
    public void DebugThis()
    {
    }
    

    【讨论】:

      【解决方案4】:

      您还可以在项目 Properties 的 Build 选项卡下定义 DEBUG 和 TRACE 条件编译常量。对于这种情况,可能会为您的项目选中 Define DEBUG constant 复选框。

      更多详情@MSDN.

      【讨论】:

        猜你喜欢
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-18
        • 1970-01-01
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        相关资源
        最近更新 更多