Debug.WriteIf メソッド

定義

条件が true の場合、デバッグについての情報を Listeners コレクションのトレース リスナーに書き込みます。

オーバーロード

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

が のtrue場合conditionは、カテゴリ名とメッセージをコレクション内のトレース リスナーにListeners書き込みます。

WriteIf(Boolean, Object)

条件が true の場合、オブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

WriteIf(Boolean, String)

条件が true である場合、メッセージを Listeners コレクションのトレース リスナーに書き込みます。

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

指定した条件trueが の場合、カテゴリ名とメッセージをコレクション内のListenersトレース リスナーに書き込みます。

WriteIf(Boolean, Object, String)

条件が true の場合は、カテゴリ名とオブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

WriteIf(Boolean, String, String)

条件が true である場合、カテゴリ名とメッセージを Listeners コレクションのトレース リスナーに書き込みます。

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

ソース:
Debug.cs
ソース:
Debug.cs
ソース:
Debug.cs

が のtrue場合conditionは、カテゴリ名とメッセージをコレクション内のトレース リスナーにListeners書き込みます。

public:
 static void WriteIf(bool condition, System::Diagnostics::Debug::WriteIfInterpolatedStringHandler % message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * WriteIfInterpolatedStringHandler -> unit
Public Shared Sub WriteIf (condition As Boolean, ByRef message As Debug.WriteIfInterpolatedStringHandler)

パラメーター

condition
Boolean

評価する条件式です。 条件が true の場合、コレクションのトレース リスナーに値が書き込まれます。

message
Debug.WriteIfInterpolatedStringHandler

が の場合conditiontrueに書き込むメッセージ。

属性

注釈

このオーバーロードは、パフォーマンスを向上させるために .NET 6 で導入されました。 パラメーターを受け取る String オーバーロードと比較して、このオーバーロードは、メッセージが必要な場合にのみ、挿入文字列の書式設定項目を評価します。

既定では、出力は の DefaultTraceListenerインスタンスに書き込まれます。

パラメーターを category 使用して、出力メッセージをグループ化します。

このメソッドは、 Write トレース リスナーの メソッドを呼び出します。

こちらもご覧ください

適用対象

WriteIf(Boolean, Object)

ソース:
Debug.cs
ソース:
Debug.cs
ソース:
Debug.cs

条件が true の場合、オブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

public:
 static void WriteIf(bool condition, System::Object ^ value);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object value);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object? value);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * obj -> unit
Public Shared Sub WriteIf (condition As Boolean, value As Object)

パラメーター

condition
Boolean

評価する条件式です。 条件が true の場合、コレクションのトレース リスナーに値が書き込まれます。

value
Object

名前が Listeners に送信されるオブジェクト。

属性

次の例では、 という名前の を TraceSwitch 作成します generalSwitch。 このスイッチは、コード サンプルの外部で設定されます。

スイッチが 以上に TraceLevelError 設定されている場合、この例では value パラメーターの名を に Listeners出力します。 コレクションにリスナーを追加する Listeners 方法については、 クラスを TraceListenerCollection 参照してください。

次に TraceLevel 、 が に Verbose設定されている場合、最初のメッセージと同じ行にメッセージを出力します。 2 番目のメッセージの後に行ターミネータが続きます。

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod( Object^ myObject )
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceError, myObject );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceVerbose, 
         " is not a valid value for this method." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(Object myObject)
{
    // Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, myObject);

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, " is not a valid value for this method.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object)
    ' Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, myObject)
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, " is not a valid value for this method.")
End Sub

注釈

既定では、出力は の DefaultTraceListenerインスタンスに書き込まれます。

このメソッドは、 Write トレース リスナーの メソッドを呼び出します。

注意 (継承者)

ステートメントを使用する代わりに ステートメントを使用 If...Then することで、アプリケーションのインストルメント化によるパフォーマンスの低下を WriteIf(Boolean, String) 最小限に抑えることができます。 次の 2 つのコード例では、同じデバッグ メッセージを送信します。 ただし、トレースがオフの場合、最初の例の方がはるかに高速になります。これは、 が に評価された場合 mySwitch.TraceErrorfalseを呼び出 Write(String)さないためです。 2 番目の例では、 が でfalse、トレース出力が生成されない場合mySwitch.TraceErrorでも、 は常に を呼び出WriteIf(Boolean, String)します。 これにより、任意に複雑なコードが不要に実行される可能性があります。

1 番目の例:

if(mySwitch.TraceError)
    Debug.Write("aNumber = " + aNumber + " out of range");

2 番目の例:

Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

こちらもご覧ください

適用対象

WriteIf(Boolean, String)

ソース:
Debug.cs
ソース:
Debug.cs
ソース:
Debug.cs

条件が true である場合、メッセージを Listeners コレクションのトレース リスナーに書き込みます。

public:
 static void WriteIf(bool condition, System::String ^ message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string? message);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * string -> unit
Public Shared Sub WriteIf (condition As Boolean, message As String)

パラメーター

condition
Boolean

評価する条件式です。 条件が true の場合、コレクションのトレース リスナーにメッセージが書き込まれます。

message
String

書き込むメッセージ。

属性

次の例では、 という名前の を TraceSwitch 作成します generalSwitch。 このスイッチは、コード サンプルの外部で設定されます。

スイッチが 以上に TraceLevelError 設定されている場合、最初のエラー メッセージが に出力されます Listeners。 コレクションにリスナーを追加する Listeners 方法については、 クラスを TraceListenerCollection 参照してください。

次に TraceLevel 、 が に Verbose設定されている場合、最初のメッセージと同じ行に 2 番目のエラー メッセージが出力されます。 2 番目のメッセージの後に行ターミネータが続きます。

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod()
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceError, "My error message. " );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteIf( generalSwitch->TraceVerbose, 
         "My second error message." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static void MyErrorMethod()
{
    // Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "My error message. ");

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, "My second error message.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod()
    ' Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "My error message. ")
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, "My second error message.")
End Sub

注釈

既定では、出力は の DefaultTraceListenerインスタンスに書き込まれます。

このメソッドは、 Write トレース リスナーの メソッドを呼び出します。

注意 (継承者)

ステートメントを使用する代わりに ステートメントを使用 If...Then することで、アプリケーションのインストルメント化によるパフォーマンスの低下を WriteIf(Boolean, String) 最小限に抑えることができます。 次の 2 つのコード例では、同じデバッグ メッセージを送信します。 ただし、トレースがオフの場合、最初の例の方がはるかに高速になります。これは、 が に評価された場合 mySwitch.TraceErrorfalseを呼び出 Write(String)さないためです。 2 番目の例では、 が でfalse、トレース出力が生成されない場合mySwitch.TraceErrorでも、 は常に を呼び出WriteIf(Boolean, String)します。 これにより、任意に複雑なコードが不要に実行される可能性があります。

1 番目の例:

if(mySwitch.TraceError)
    Debug.Write("aNumber = " + aNumber + " out of range");

2 番目の例:

Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

こちらもご覧ください

適用対象

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

ソース:
Debug.cs
ソース:
Debug.cs
ソース:
Debug.cs

指定した条件trueが の場合、カテゴリ名とメッセージをコレクション内のListenersトレース リスナーに書き込みます。

public:
 static void WriteIf(bool condition, System::Diagnostics::Debug::WriteIfInterpolatedStringHandler % message, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * WriteIfInterpolatedStringHandler * string -> unit
Public Shared Sub WriteIf (condition As Boolean, ByRef message As Debug.WriteIfInterpolatedStringHandler, category As String)

パラメーター

condition
Boolean

評価する条件式です。 条件が true の場合、コレクションのトレース リスナーにメッセージが書き込まれます。

message
Debug.WriteIfInterpolatedStringHandler

書き込むメッセージ。

category
String

出力を編成するために使用するカテゴリ名。

属性

注釈

このオーバーロードは、パフォーマンスを向上させるために .NET 6 で導入されました。 パラメーターを受け取る String オーバーロードと比較して、このオーバーロードは、メッセージが必要な場合にのみ、挿入文字列の書式設定項目を評価します。

既定では、出力は の DefaultTraceListenerインスタンスに書き込まれます。

パラメーターを category 使用して、出力メッセージをグループ化します。

このメソッドは、 Write トレース リスナーの メソッドを呼び出します。

こちらもご覧ください

適用対象

WriteIf(Boolean, Object, String)

ソース:
Debug.cs
ソース:
Debug.cs
ソース:
Debug.cs

条件が true の場合は、カテゴリ名とオブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

public:
 static void WriteIf(bool condition, System::Object ^ value, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object value, string category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object? value, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * obj * string -> unit
Public Shared Sub WriteIf (condition As Boolean, value As Object, category As String)

パラメーター

condition
Boolean

評価する条件式です。 条件が true の場合、コレクションのトレース リスナーにカテゴリ名と値が書き込まれます。

value
Object

名前が Listeners に送信されるオブジェクト。

category
String

出力を編成するために使用するカテゴリ名。

属性

次の例では、 という名前の を TraceSwitch 作成します generalSwitch。 このスイッチは、コード サンプルの外部で設定されます。

スイッチが にTraceLevel設定されている場合、例では、 と の名前を myObjectcategory に出力しますListenersVerbose コレクションにリスナーを追加する Listeners 方法については、 クラスを TraceListenerCollection 参照してください。

次に TraceLevel 、 が 以上に Error 設定されている場合、最初のメッセージと同じ行に 2 番目のエラー メッセージを出力します。 2 番目のメッセージの後に行ターミネータが続きます。

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod( Object^ myObject, String^ category )
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceVerbose, myObject, category );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceError, 
         " Object is not valid for this category." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(Object myObject, string category)
{
    // Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject, category);

    // Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Object is not valid for this category.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object, category As String)
    ' Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject, category)
    
    ' Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Object is not valid for this category.")
End Sub

注釈

既定では、出力は の DefaultTraceListenerインスタンスに書き込まれます。

パラメーターを category 使用して、出力メッセージをグループ化できます。

このメソッドは、 Write トレース リスナーの メソッドを呼び出します。

注意 (継承者)

ステートメントを使用する代わりに ステートメントを使用 If...Then することで、アプリケーションのインストルメント化によるパフォーマンスの低下を WriteIf(Boolean, String) 最小限に抑えることができます。 次の 2 つのコード例では、同じデバッグ メッセージを送信します。 ただし、トレースがオフの場合、最初の例の方がはるかに高速になります。これは、 が に評価された場合 mySwitch.TraceErrorfalseを呼び出 Write(String)さないためです。 2 番目の例では、 が でfalse、トレース出力が生成されない場合mySwitch.TraceErrorでも、 は常に を呼び出WriteIf(Boolean, String)します。 これにより、任意に複雑なコードが不要に実行される可能性があります。

1 番目の例:

if(mySwitch.TraceError)
    Debug.Write("aNumber = " + aNumber + " out of range");

2 番目の例:

Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

こちらもご覧ください

適用対象

WriteIf(Boolean, String, String)

ソース:
Debug.cs
ソース:
Debug.cs
ソース:
Debug.cs

条件が true である場合、カテゴリ名とメッセージを Listeners コレクションのトレース リスナーに書き込みます。

public:
 static void WriteIf(bool condition, System::String ^ message, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string message, string category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string? message, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * string * string -> unit
Public Shared Sub WriteIf (condition As Boolean, message As String, category As String)

パラメーター

condition
Boolean

評価する条件式です。 条件が true の場合、コレクションのトレース リスナーにカテゴリ名とメッセージが書き込まれます。

message
String

書き込むメッセージ。

category
String

出力を編成するために使用するカテゴリ名。

属性

次の例では、 という名前の を TraceSwitch 作成します generalSwitch。 このスイッチは、コード サンプルの外部で設定されます。

スイッチが に TraceLevelVerbose設定されている場合、最初のエラー メッセージが に Listeners出力されます。 コレクションにリスナーを追加する Listeners 方法については、 クラスを TraceListenerCollection 参照してください。

次に TraceLevel 、 が 以上に Error 設定されている場合、最初のメッセージと同じ行に 2 番目のエラー メッセージを出力します。 2 番目のメッセージの後に行ターミネータが続きます。

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod( Object^ myObject, String^ category )
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceVerbose, String::Concat( myObject, 
         " is not a valid object for category: " ), category );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceError, 
         " Please use a different category." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(Object myObject, string category)
{
    // Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject.ToString() +
       " is not a valid object for category: ", category);

    // Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Please use a different category.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object, category As String)
    ' Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject.ToString() & _
        " is not a valid object for category: ", category)
    
    ' Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Please use a different category.")
End Sub

注釈

既定では、出力は の DefaultTraceListenerインスタンスに書き込まれます。

パラメーターを category 使用して、出力メッセージをグループ化できます。

このメソッドは、 TraceListener.Write トレース リスナーの メソッドを呼び出します。

注意 (継承者)

ステートメントを使用する代わりに ステートメントを使用 If...Then することで、アプリケーションのインストルメント化によるパフォーマンスの低下を WriteIf(Boolean, String) 最小限に抑えることができます。 次の 2 つのコード例では、同じデバッグ メッセージを送信します。 ただし、トレースがオフの場合、最初の例の方がはるかに高速になります。これは、 が に評価された場合 mySwitch.TraceErrorfalseを呼び出 Write(String)さないためです。 2 番目の例では、 が でfalse、トレース出力が生成されない場合mySwitch.TraceErrorでも、 は常に を呼び出WriteIf(Boolean, String)します。 これにより、任意に複雑なコードが不要に実行される可能性があります。

1 番目の例:

if(mySwitch.TraceError)
    Debug.Write("aNumber = " + aNumber + " out of range");

2 番目の例:

Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

こちらもご覧ください

適用対象