2012-10-28 41 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

相關問題