64

どうやら

デバッグの使用がリリース構成でコンパイルされる という注目すべき例外を除いて、ほとんど同じです。

一方を使用し、もう一方を使用しないのはいつですか? 私がこれまで掘り下げた唯一の答えは、Debugクラスを使用して、デバッグ構成でのみ表示される出力を生成し、Traceはリリース構成にとどまるということですが、それは実際には質問に答えません私の頭。

コードを計測する場合、再コンパイルせずにTraceをオフにできるのに、なぜDebugを使用するのでしょうか?

4

7 に答える 7

70

主な違いは、あなたが示すものです.デバッグはリリースに含まれていませんが、トレースは含まれています.

私が理解しているように、意図された違いは、開発チームが Debug を使用して、製品の消費者にとって詳細すぎる (または明らかにする) ことが判明する可能性のある豊富で説明的なメッセージを発行する可能性があることです。アプリケーションのインスツルメントに特化したメッセージ。

あなたの最後の質問に答えるために、デバッグを使用して、リリースする予定のコードをインストルメント化する理由が思いつきません。

お役に立てれば。

于 2008-10-07T19:07:01.083 に答える
5

traceとdebugの唯一の違いは、トレースステートメントがリリースビルドにコンパイルされるときにプログラムにデフォルトで含まれているのに対し、debugステートメントは含まれていないことです。

したがって、デバッグクラスは主に開発フェーズでのデバッグに使用されますが、トレースはアプリケーションのコンパイルとリリース後のテストと最適化に使用できます。

于 2009-05-30T13:50:15.367 に答える
5

Debug は純粋なデバッグ目的で使用されます。デバッグ実行 (デバッグ モード) で豊富なメッセージを出力します。

トレースは、アプリケーションのデバッグ、バグ修正、およびプロファイリング (リリース後) に役立ちます。

Debug クラスは、リリース モードでは役に立ちません。

于 2011-12-26T06:14:58.493 に答える
2

その機能ははるかに柔軟で堅牢であるため、トレースに log4net を使用することを検討します。

しかし、私や社内のテスター以外には絶対に見せたくない真のデバッグ メッセージについては、おそらく Debug を使い続けるでしょう。

于 2008-10-07T19:04:08.203 に答える
2

パフォーマンスに非常に敏感なコード ブロックの場合、Trace をコンパイル済みのままにして無効にすると、パフォーマンスに違いが生じる可能性があります。

于 2008-10-07T19:08:05.607 に答える
1

あなたはあなた自身の質問に答えました。デバッグ メッセージが残っていれば、人々はそれらを見ることができます。たとえば、次のようにするとします。

Debug.WriteLine("Connecting to DB with username: blah and PW: pass");

コードを逆コンパイルする人は誰でもそれを見ることができます。しかし、それはテスト中に知っておくべき非常に重要なことかもしれません.

跡が違います。Trace を実行する場合は、log4net を使用することをお勧めします。

于 2008-10-07T19:07:32.283 に答える