2010-05-27 104 views
8

我在看一些C#代碼,以及所遇到下面的語句:C#編譯器指令

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

我認爲DEBUG將是一個地方的定義如下:

#define DEBUG 

但我無法找到這樣的定義,儘管代碼看起來好像已經設置好了。 DEBUG是一個特例,如果是的話,它是如何設置/未設置的?

回答

5

在該項目上,請轉至Properties -> Build。一般情況下,您可以選擇定義DEBUGTRACE

+1

那麼有這些複選框而不是#define DEBUG設置的優勢/推理是什麼? – 2010-05-27 11:19:39

+0

@ pm_2 - 中心性。這就是它。 – 2010-05-27 11:54:52

4

它使用#define指令或在compiler settings中設置。在調試版本中定義DEBUG是很常見的,所以你可以像你的例子那樣有條件地編譯一些代碼。

您可以在MSDN上閱讀更多關於它的信息。

+7

**請**不要發佈Visual Studio 2003/.NET 1.1鏈接!讀者按照鏈接,然後希望按照鏈接的鏈接,並在2003年陷入困境。 – 2010-05-27 10:26:26

+3

是的抱歉,我只是修復了這一點。愚蠢的谷歌的錯誤,我有低帶寬版啓用,所以我不立即看到。當然所有的藉口:) – Skurmedel 2010-05-27 10:28:02

4

如果您在項目屬性看,你會發現一個調試選項DEBUG 然後你可以在C#中做:

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

您也可以定義DEBUG和項目屬性生成的跟蹤下的條件編譯常數標籤。對於這種情況,定義DEBUG常量複選框可能會針對您的項目進行檢查。

更多詳細信息@MSDN