【发布时间】:2011-02-24 14:27:07
【问题描述】:
我正在查看一些 C# 代码,并且遇到了以下语句:
#if DEBUG
// Do something here
#else
// Do something else
#endif
我假设 DEBUG 将在某处定义如下:
#define DEBUG
但我找不到这样的定义,尽管代码的行为似乎就像是设置的一样。 DEBUG 是不是一个特例,如果是,它是如何设置/取消设置的?
【问题讨论】:
我正在查看一些 C# 代码,并且遇到了以下语句:
#if DEBUG
// Do something here
#else
// Do something else
#endif
我假设 DEBUG 将在某处定义如下:
#define DEBUG
但我找不到这样的定义,尽管代码的行为似乎就像是设置的一样。 DEBUG 是不是一个特例,如果是,它是如何设置/取消设置的?
【问题讨论】:
关于项目,请转至Properties -> Build。一般来说,您可以选择同时定义DEBUG 和TRACE。
【讨论】:
使用#define 指令或compiler settings 设置。在调试版本中定义 DEBUG 是很常见的,因此您可以像示例中那样有条件地编译一些代码。
您可以在MSDN 上阅读更多相关信息。
【讨论】:
如果您查看项目属性,您会发现调试选项 DEBUG 然后你可以在 C# 中做:
[Conditional("Debug")]
public void DebugThis()
{
}
【讨论】:
您还可以在项目 Properties 的 Build 选项卡下定义 DEBUG 和 TRACE 条件编译常量。对于这种情况,可能会为您的项目选中 Define DEBUG constant 复选框。
更多详情@MSDN.
【讨论】: