C#编译器指令

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

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

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

 #define DEBUG 

但我无法找到这样的定义,尽管代码似乎表现得像设置的那样。 DEBUG是一个特例,如果是这样,它是如何设置/取消设置的?

在项目中,转到Properties -> Build 。 一般情况下,您可以选择定义DEBUGTRACE

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

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

如果您查看项目属性,您将找到调试选项DEBUG然后您可以在C#中执行:

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

您还可以在项目“属性”的“构建”选项卡下定义DEBUG和TRACE条件编译常量。 对于此实例,可能会检查您的项目的“ 定义DEBUG常量”复选框。

更多细节@ MSDN 。