Visual Studio でを使用する場合#if (DEBUG)
と を使用する場合の違いは何ですか?フラグが設定されているのにデバッガーがアタッチされていない場合や、フラグが設定されていなくてもデバッガーをアタッチできる場合はありますか?System.Diagnostics.Debugger.IsAttached
DEBUG
DEBUG
ベストアンサー1
#if DEBUG
リリース ビルドでは、コードがアセンブリにまったく含まれないことを保証します。また、 によって含まれるコードは、#if DEBUG
デバッガーで実行されているときだけでなく、デバッグ ビルドでは常に実行されます。
Debugger.IsAttached
つまり、コードはデバッグ ビルドとリリース ビルドの両方に含まれます。また、リリース ビルドにデバッガーをアタッチすることもできます。
両方を一緒に使用するのが一般的です。#if DEBUG
は通常、ログ記録などの目的、または内部テスト ビルドでの例外処理の削減に使用されます。Debugger.IsAttached
例外を受け入れるか、プログラマーに表示するかを決定するために使用される傾向があり、他の何よりもプログラマーの補助として使用されます。