2017-03-06 53 views
-12
#if DEBUG    
     e.Handled = false; 
#else 
     ShowUnhandledException(e); 
#endif 

嘗試使用上述指令時,「if」後面的行顯示爲代碼並執行,但else之後的行保持灰色並且不會執行。 endif聲明起作用。如何讓else指令作爲一行代碼工作?#if #else #endif指令

DEBUG定義常數在安裝程序中打勾!

+0

修改特定的行爲'#if'指令確定代碼是根本編譯的。當您處於調試模式時,'#else'塊中的代碼將被完全忽略。真的不清楚你在這裏問什麼。 – DavidG

+1

在運行程序之前選擇一個不需要調試的版本? –

回答

2

如果你的意思是如何得到else下的代碼在你的設置來執行代碼的代替if下,然後簡單地勾去掉DEBUG。

0

可能,我建議是這樣的:

bool isDebugging; 
#if DEBUG 
    isDebugging = true; 
#else 
    isDebugging = false; 
#endif 

if(isDebugging) 
{ 
    e.Handled = false; 
} 
else 
{ 
    ShowUnhandledException(e); 
} 

我經常有某種靜態變量與buildmode的枚舉表示調試時(如不發送郵件等)