2012-10-28 39 views
7

在C++中我有这样的:http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx。因此,我可以编写仅在调试时运行的代码,或者仅用于特定平台(PowerPC,MIPS,Power Macintosh等不再受支持,但这是一个很好的示例)的代码。你也可以在32位和64位系统之间进行切换(当然,这仅仅在你发布2个不同的版本时才有用,每个版本都有自己的处理器体系结构,在C#中这是一个罕见的需求,但它仍然是)。C#是否有预定义的符号?

所以我的问题是,如果类似的东西存在于C#中。 我知道有没有宏,但却有符号(即使使用相同的#define关键字所以那种意义 - 至少对我来说 - 它应该存在

回答

6

在.NET中有Pre-processing directives。要包括一些代码块仅在调试时,你可以这样做:

#define Debug  // Debugging on 

class PurchaseTransaction 
{ 
    void Commit() { 
     #if Debug 
     CheckConsistency(); 
     #else 
     /* Do something else 
     #endif 
    } 
} 

如果你去项目在Visual Studio设置,检查Build选项卡在那里,你可以定义调试和跟踪常量选定的配置(选中默认情况下为Debug版本)您也可以定义附加的条件编译符号

enter image description here

+0

但你在第一行定义它..它不是预定义的。 (或者你只是为了演示而编写它,而预处理器会自动执行它?) – MasterMastic

+1

如果您转到Visual Studio中的Project设置,请选中Build选项卡。您可以在其中定义Debug和Trace常量(默认情况下为Debug版本进行检查)。看到我更新的答案。 –

+2

啊,我明白了。有点令人失望,我期待了一大堆干净利索的东西,但这也很棒。 尽管如此,谢谢你的澄清,我很感激! – MasterMastic

5

MSDN文档没有列出任何预定义的名称。似乎所有需要来自#define和/ define。

Check IF here

相关问题