Debug クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コードのデバッグを支援するメソッドとプロパティのセットを提供します。
public ref class Debug abstract sealed
public ref class Debug sealed
public static class Debug
public sealed class Debug
type Debug = class
Public Class Debug
Public NotInheritable Class Debug
- 継承
-
Debug
例
次の例では、プログラムの実行の開始と終了を示すために使用 Debug します。 この例では、トレース出力も使用 Indent して Unindent 区別します。
// Specify /DDEBUG when compiling.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
int main( void )
{
#if defined(DEBUG)
Debug::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
Debug::AutoFlush = true;
Debug::Indent();
Debug::WriteLine( "Entering Main" );
#endif
Console::WriteLine( "Hello World." );
#if defined(DEBUG)
Debug::WriteLine( "Exiting Main" );
Debug::Unindent();
#endif
return 0;
}
// Specify /d:DEBUG when compiling.
using System;
using System.Data;
using System.Diagnostics;
class Test
{
static void Main()
{
Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
Debug.AutoFlush = true;
Debug.Indent();
Debug.WriteLine("Entering Main");
Console.WriteLine("Hello World.");
Debug.WriteLine("Exiting Main");
Debug.Unindent();
}
}
' Specify /d:DEBUG=True when compiling.
Imports System.Data
Imports System.Diagnostics
Class Test
Shared Sub Main()
Debug.Listeners.Add(New TextWriterTraceListener(Console.Out))
Debug.AutoFlush = True
Debug.Indent()
Debug.WriteLine("Entering Main")
Console.WriteLine("Hello World.")
Debug.WriteLine("Exiting Main")
Debug.Unindent()
End Sub
End Class
注釈
出荷製品のパフォーマンスとコード サイズに影響を与えずにコードをより堅牢にするには、クラスの Debug メソッドを使用してデバッグ情報を出力し、アサーションを使用してロジックを確認します。
このクラスは、ダイアログ ボックスを Assert 表示し、常に失敗するアサーションを出力するメソッドを提供します。 このクラスは、次のバリエーションの書き込みメソッドを提供します。
これらのクラスはBooleanSwitchTraceSwitch、トレース出力を動的に制御する手段を提供します。 .NET Framework アプリの場合は、アプリケーションを再コンパイルすることなく、これらのスイッチの値を変更できます。 構成ファイルを使用して.NET Framework アプリでスイッチを設定する方法については、クラスとトレース スイッチにSwitch関する記事を参照してください。
トレース出力のターゲットをカスタマイズするには、インスタンスをコレクションに追加 TraceListener するか、コレクションからインスタンスを Listeners 削除します。 コレクションはListeners、クラスとクラスのDebugTrace両方によって共有されます。いずれかのクラスにトレース リスナーを追加すると、両方にリスナーが追加されます。 既定では、このクラスは DefaultTraceListener トレース出力を出力します。
注意
Listeners コレクションにトレース リスナーを追加することで、トレース リスナーによって使用されるリソースが利用できない場合、トレース中に例外を発生させることになります。 スローされる条件と例外はトレース リスナーによって異なります。この記事では列挙できません。 トレース リスナーから例外を検出し、処理するために、Debug メソッドの呼び出しをtry
/catch
ブロックに配置することができます。
インデントのレベルは、メソッドまたはIndentLevelプロパティをIndent使用して変更できます。 インデント間隔を変更するには、プロパティを IndentSize 使用します。 各書き込み後に出力バッファーを自動的にフラッシュするかどうかを指定するには、プロパティtrue
を AutoFlush .
.NET Frameworkアプリの場合は、アプリの構成ファイルをAutoFlush IndentSize Debug編集して設定できます。 構成ファイルは、次の例に示すように書式設定する必要があります。
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="7" />
</system.diagnostics>
</configuration>
この ConditionalAttribute 属性は、.のメソッド Debugに適用されます。 条件付きコンパイル シンボルとして定義されていない限りDEBUG
、これらのメソッドの呼び出しをサポートConditionalAttributeするコンパイラは無視します。 コンパイラのドキュメントを参照して、サポートされているかどうかを ConditionalAttribute 確認し、条件付きコンパイル シンボルを定義するための構文を確認します。
注意
Visual Studio C# プロジェクトと Visual Basic プロジェクトでは、既定では、デバッグ ビルド用にDEBUG
条件付きコンパイル シンボルが定義され、シンボルはデバッグ ビルドとTRACE
リリース ビルドの両方に対して定義されます。 Visual C++ での条件付きデバッグの詳細については、「 デバッグ クラス (C++/CLI)」を参照してください。
C# で条件付きコンパイル シンボルを DEBUG
定義するには、コマンド ラインを /d:DEBUG
使用してコードをコンパイルするときに、コンパイラ コマンド ラインにオプションを追加するか、ファイルの先頭に追加 #define DEBUG
します。 Visual Basicで、コンパイラ コマンド /d:DEBUG=True
ラインにオプションを追加するか、ファイルに追加#Const DEBUG=True
します。
プロパティ
AutoFlush | |
IndentLevel |
インデント レベルを取得または設定します。 |
IndentSize |
1 つのインデントに含まれるスペースの数を取得または設定します。 |
Listeners |
デバッグ出力を監視するリスナーのコレクションを取得します。 |
メソッド
Assert(Boolean) |
条件をチェックします。条件が |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
条件をチェックします。条件が |
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
条件をチェックします。条件が |
Assert(Boolean, String) |
条件をチェックします。条件が |
Assert(Boolean, String, String) |
条件をチェックします。条件が |
Assert(Boolean, String, String, Object[]) |
条件をチェックし、その条件が |
Close() |
出力バッファーをフラッシュしてから、各 Listeners で |
Fail(String) |
指定されたエラー メッセージを出力します。 |
Fail(String, String) |
エラー メッセージと詳細エラー メッセージを出力します。 |
Flush() |
出力バッファーをフラッシュし、バッファー内のデータを Listeners コレクションに書き込みます。 |
Indent() |
現在の IndentLevel を 1 だけ大きくします。 |
Print(String) |
Listeners コレクションのトレース リスナーにメッセージを書き込み、続けて行終端記号を書き込みます。 |
Print(String, Object[]) |
Listeners コレクションのトレース リスナーに書式指定された文字列を書き込み、続けて行終端記号を書き込みます。 |
Unindent() |
現在の IndentLevel を 1 だけ減らします。 |
Write(Object) |
オブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。 |
Write(Object, String) |
カテゴリ名とオブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。 |
Write(String) |
Listeners コレクションのトレース リスナーにメッセージを書き込みます。 |
Write(String, String) |
カテゴリ名とメッセージを Listeners コレクションのトレース リスナーに書き込みます。 |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
の場合 |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
指定した条件 |
WriteIf(Boolean, Object) |
条件が |
WriteIf(Boolean, Object, String) |
条件が |
WriteIf(Boolean, String) |
条件が |
WriteIf(Boolean, String, String) |
条件が |
WriteLine(Object) |
オブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。 |
WriteLine(Object, String) |
カテゴリ名とオブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。 |
WriteLine(String) |
Listeners コレクションのトレース リスナーにメッセージを書き込み、続けて行終端記号を書き込みます。 |
WriteLine(String, Object[]) |
Listeners コレクションのトレース リスナーに書式指定されたメッセージを書き込み、続けて行終端記号を書き込みます。 |
WriteLine(String, String) |
カテゴリ名とメッセージを Listeners コレクションのトレース リスナーに書き込みます。 |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
指定した条件 |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
指定した条件 |
WriteLineIf(Boolean, Object) |
条件が |
WriteLineIf(Boolean, Object, String) |
条件が |
WriteLineIf(Boolean, String) |
条件が |
WriteLineIf(Boolean, String, String) |
条件が |
適用対象
スレッド セーフ
この型はスレッド セーフです。