3

私はC#とVisual Studioを初めて使用します。これはばかげた質問かもしれませんが、答えを見つける必要があります。私の質問は、デバッグモードでビルドする場合は特定のコード行(私の場合はMessageBox.Show(...))がコンパイルされ、ビルドする場合は省略されるように、デバッグビルドとリリースビルドを区別できるかどうかです。リリースモードで?

4

5 に答える 5

4

#if DEBUGコード行をステートメントでラップします。

#if DEBUG
    MessageBox.Show("Message");
#endif

リリースで別のことをしたい場合は、次のものを使用できます。

#if DEBUG
    MessageBox.Show("Message");
#else
    // Write to log file
#endif

ソース

于 2012-07-31T12:18:26.317 に答える
1

コンパイラ命令「#if DEBUG」の後に「#endif」を使用すると、コードはデバッグ モードでのみコンパイルされます。

詳細はこちら:
http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx

于 2012-07-31T12:18:19.283 に答える
1

プロジェクトのプロパティでさまざまな条件付きコンパイル シンボルを指定できます (こちらの記事、Visual Studio のMSDNドキュメント)。次に、条件付きコンパイルを使用して、特定の行を簡単に含めたり除外したりできます。このような:

#if DEBUG
    MessageBox.Show(...);
#end
于 2012-07-31T12:19:22.433 に答える
1

に加えて、クラスのstatic メソッドを#if DEBUG使用して、値が間違っているかどうかを確認し、メッセージ ボックスを表示することもできます。例えば:AssertDebugSystem.Diagnostics

Debug.Assert(IsValid);

IsValid が false の場合、デバッグ ビルドにメッセージが表示されます。

于 2012-07-31T12:21:36.627 に答える
0

はい、使用できます

#if DEBUG
    MessageBox.Show....
#endif

ビルド バージョンを確認すると、変数がプロジェクトで定義されていることがわかります。変数DEBUGはデバッグ リリースでのみ定義されています。必要に応じて、次を使用して動作を切り替えることもできます

#if DEBUG
    MessageBox.Show....
#else
    // do something else here in release mode
#endif
于 2012-07-31T12:18:09.230 に答える