我在看一些C#代碼,以及所遇到下面的語句:C#編譯器指令
#if DEBUG
// Do something here
#else
// Do something else
#endif
我認爲DEBUG將是一個地方的定義如下:
#define DEBUG
但我無法找到這樣的定義,儘管代碼看起來好像已經設置好了。 DEBUG是一個特例,如果是的話,它是如何設置/未設置的?
我在看一些C#代碼,以及所遇到下面的語句:C#編譯器指令
#if DEBUG
// Do something here
#else
// Do something else
#endif
我認爲DEBUG將是一個地方的定義如下:
#define DEBUG
但我無法找到這樣的定義,儘管代碼看起來好像已經設置好了。 DEBUG是一個特例,如果是的話,它是如何設置/未設置的?
在該項目上,請轉至Properties -> Build
。一般情況下,您可以選擇定義DEBUG
和TRACE
。
它使用#define
指令或在compiler settings中設置。在調試版本中定義DEBUG是很常見的,所以你可以像你的例子那樣有條件地編譯一些代碼。
您可以在MSDN上閱讀更多關於它的信息。
**請**不要發佈Visual Studio 2003/.NET 1.1鏈接!讀者按照鏈接,然後希望按照鏈接的鏈接,並在2003年陷入困境。 – 2010-05-27 10:26:26
是的抱歉,我只是修復了這一點。愚蠢的谷歌的錯誤,我有低帶寬版啓用,所以我不立即看到。當然所有的藉口:) – Skurmedel 2010-05-27 10:28:02
如果您在項目屬性看,你會發現一個調試選項DEBUG 然後你可以在C#中做:
[Conditional("Debug")]
public void DebugThis()
{
}
您也可以定義DEBUG和項目屬性生成的跟蹤下的條件編譯常數標籤。對於這種情況,定義DEBUG常量複選框可能會針對您的項目進行檢查。
更多詳細信息@MSDN。
那麼有這些複選框而不是#define DEBUG設置的優勢/推理是什麼? – 2010-05-27 11:19:39
@ pm_2 - 中心性。這就是它。 – 2010-05-27 11:54:52