C# 是否真的有必要明确定义;“未定义”;即使定义被注释掉了?

C# 是否真的有必要明确定义;“未定义”;即使定义被注释掉了?,c#,conditional-compilation,undef,C#,Conditional Compilation,Undef,我在执行此代码时遇到一些问题: #if TRACE dbgLog = new LogInfo( "PlatypusCE" ); #endif 尽管在一大堆一般性评论之后,上面对“跟踪”进行了注释,但仍发生了这种情况: //#define TRACE 我在下面添加了以下内容: #undef TRACE ……因此: //#define TRACE #undef TRACE …但它可以按需要工作(“如果跟踪”代码不执行) 是否真的有必要取消定义尚未定义(已注释掉)

我在执行此代码时遇到一些问题:

#if TRACE
            dbgLog = new LogInfo( "PlatypusCE" );
#endif   
尽管在一大堆一般性评论之后,上面对“跟踪”进行了注释,但仍发生了这种情况:

//#define TRACE
我在下面添加了以下内容:

#undef TRACE
……因此:

//#define TRACE
#undef TRACE
…但它可以按需要工作(“如果跟踪”代码不执行)


是否真的有必要取消定义尚未定义(已注释掉)的内容?这似乎很奇怪。

默认情况下,在profiles Debug和Release中,VisualStudio将定义
TRACE
常量。您可以在项目设置(在
Build
选项卡中)中更改此行为。
调试
常量类似,默认情况下在调试配置文件(但不是发布)中处于活动状态。

默认情况下,Visual Studio将在配置文件调试和发布中定义
跟踪
常量。您可以在项目设置(在
Build
选项卡中)中更改此行为。
DEBUG
常量类似,默认情况下在调试配置文件(但不是发布)中处于活动状态。

TRACE
是默认为调试生成定义的两个常量之一:


跟踪
是默认情况下为调试生成定义的两个常量之一:


是否有可能通过而不是通过
定义
跟踪
?你看过项目设置了吗?有没有可能是
跟踪
是通过而不是
定义的?你看过项目设置了吗?