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 /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 ダイアログ ボックスを表示し、常に失敗するアサーションを出力するメソッドを提供します。 このクラスは、次のバリエーションの書き込みメソッドを提供します。
BooleanSwitchクラスとTraceSwitch クラスは、トレース出力を動的に制御する手段を提供します。 .NET Framework アプリの場合、アプリケーションを再コンパイルすることなく、これらのスイッチの値を変更できます。 構成ファイルを使用して .NET Framework アプリでスイッチを設定する方法については、 Switch クラスと トレース スイッチ に関する記事を参照してください。
トレース出力のターゲットをカスタマイズするには、Listeners コレクションにインスタンスTraceListener追加するか、インスタンスを削除します。 Listeners コレクションは、Debug クラスと Trace クラスの両方で共有されます。どちらのクラスにもトレース リスナーを追加すると、リスナーが両方に追加されます。 既定では、 DefaultTraceListener クラスはトレース出力を出力します。
注
トレース リスナーを Listeners コレクションに追加すると、トレース リスナーで使用されているリソースが使用できない場合、トレース中に例外がスローされる可能性があります。 条件とスローされる例外はトレース リスナーによって異なります。この記事では列挙できません。 トレース リスナーからの例外を検出して処理するには、try/catch ブロックにDebug メソッドの呼び出しを配置すると便利な場合があります。
インデントのレベルは、 Indent メソッドまたは IndentLevel プロパティを使用して変更できます。 インデント間隔を変更するには、 IndentSize プロパティを使用します。
AutoFlush プロパティを true に設定することで、各書き込み後に出力バッファーを自動的にフラッシュするかどうかを指定できます。
.NET Framework アプリの場合は、アプリの構成ファイルを編集することで、DebugのAutoFlushとIndentSizeを設定できます。 構成ファイルは、次の例に示すように書式設定する必要があります。
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="7" />
</system.diagnostics>
</configuration>
ConditionalAttribute属性は、Debugのメソッドに適用されます。
ConditionalAttributeをサポートするコンパイラは、DEBUGが条件付きコンパイル シンボルとして定義されていない限り、これらのメソッドの呼び出しを無視します。 コンパイラのドキュメントを参照して、 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 |
インデント内のスペースの数を取得または設定します。 |
| Listeners |
デバッグ出力を監視しているリスナーのコレクションを取得します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
条件を確認します。条件が |
| Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
条件を確認します。条件が |
| Assert(Boolean, String, String, Object[]) |
条件を確認します。条件が |
| Assert(Boolean, String, String) |
条件を確認します。条件が |
| Assert(Boolean, String) |
条件を確認します。条件が |
| Assert(Boolean) |
条件を確認します。条件が |
| Close() |
出力バッファーをフラッシュし、各Listenersで |
| Fail(String, String) |
エラー メッセージと詳細なエラー メッセージを出力します。 |
| Fail(String) |
指定したエラー メッセージを出力します。 |
| Flush() |
出力バッファーをフラッシュし、バッファー内のデータを Listeners コレクションに書き込みます。 |
| Indent() |
現在の IndentLevel を 1 ずつ増やします。 |
| Print(String, Object[]) |
書式設定された文字列の後に行終端記号を書き込み、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| Print(String) |
メッセージの後に行終端記号を書き込み、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| Unindent() |
現在の IndentLevel を 1 ずつ減らします。 |
| Write(Object, String) |
Listeners コレクション内のトレース リスナーに、カテゴリ名とオブジェクトのToString() メソッドの値を書き込みます。 |
| Write(Object) |
オブジェクトの ToString() メソッドの値を、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| Write(String, String) |
カテゴリ名とメッセージを、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| Write(String) |
Listeners コレクション内のトレース リスナーにメッセージを書き込みます。 |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
指定した条件が |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
|
| WriteIf(Boolean, Object, String) |
条件が |
| WriteIf(Boolean, Object) |
条件が |
| WriteIf(Boolean, String, String) |
条件が |
| WriteIf(Boolean, String) |
条件が |
| WriteLine(Object, String) |
Listeners コレクション内のトレース リスナーに、カテゴリ名とオブジェクトのToString() メソッドの値を書き込みます。 |
| WriteLine(Object) |
オブジェクトの ToString() メソッドの値を、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| WriteLine(String, Object[]) |
書式設定されたメッセージの後に行終端記号を書き込み、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| WriteLine(String, String) |
カテゴリ名とメッセージを、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| WriteLine(String) |
メッセージの後に行終端記号を書き込み、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
指定した条件が |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
指定した条件が |
| WriteLineIf(Boolean, Object, String) |
条件が |
| WriteLineIf(Boolean, Object) |
条件が |
| WriteLineIf(Boolean, String, String) |
条件が |
| WriteLineIf(Boolean, String) |
条件が |
適用対象
スレッド セーフ
この型はスレッド セーフです。