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

上記のディレクティブを使用しようとすると、 "if"の後の行がコードとして実行されますが、elseの後の行はグレーのままで実行されません。 endifステートメントが機能します。コードの行として動作するelseディレクティブを取得するには?#if #else #endifディレクティブ

セットアップでDEBUG define定数がチェックされています!

+0

'#if'ディレクティブはコードがコンパイルされているかどうかを判断します。デバッグモードでは、 '#else'ブロックのコードは完全に無視されます。あなたがここで尋ねていることは本当に明確ではありません。 – DavidG

+1

プログラムを実行する前にデバッグされていないリリースを選択しますか? –

答えて

2

あなたのセットアップで、if下、単にチェックを外しDEBUGをコードする代わりを実行するためにelse下のコードを取得する方法を意味します。

0

私はこのような何かを提案することができる:

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

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

私は、多くの場合、(例えばなどのメールを送信しないよう)デバッグ時に特定の行動を修正するためにbuildmodeの列挙型の表現と静的変数のいくつかの種類を持っている