次の方法で共有


Debug.WriteLineIf メソッド

定義

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

オーバーロード

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

WriteLineIf(Boolean, Object)

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

WriteLineIf(Boolean, String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteLineIf(Boolean, String, String)

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

WriteLineIf(Boolean, Object, String)

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

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

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

パラメーター

condition
Boolean

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

value
Object

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

category
String

出力を整理するために使用されるカテゴリ名。

属性

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

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

次に、TraceLevelVerboseに設定されている場合、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->TraceError, "Invalid object for category. ");
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceVerbose, myObject, 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 Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "Invalid object for category. ");

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, myObject, 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 Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "Invalid object for category. ")
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, myObject, category)
End Sub

注釈

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

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

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

注意 (継承者)

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

最初の例:

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

2 番目の例:

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

こちらもご覧ください

適用対象

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

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

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

パラメーター

condition
Boolean

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

message
Debug.WriteIfInterpolatedStringHandler

書き込むメッセージ。

属性

注釈

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

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

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

こちらもご覧ください

適用対象

WriteLineIf(Boolean, Object)

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

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

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

パラメーター

condition
Boolean

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

value
Object

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

属性

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

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

次に、TraceLevelVerboseに設定すると、最初のメッセージと同じ行にオブジェクトの名前が出力されます。 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, "Invalid object. " );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceVerbose, myObject );
      #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, "Invalid object. ");

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, myObject);
}
' 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, "Invalid object. ")
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, myObject)
End Sub

注釈

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

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

注意 (継承者)

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

最初の例:

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

2 番目の例:

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

こちらもご覧ください

適用対象

WriteLineIf(Boolean, String)

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

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

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

パラメーター

condition
Boolean

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

message
String

書き込むメッセージ。

属性

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

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

次に、TraceLevelVerboseに設定されている場合、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::WriteLineIf( 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.WriteLineIf(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.WriteLineIf(generalSwitch.TraceVerbose, "My second error message.")
End Sub

注釈

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

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

注意 (継承者)

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

最初の例:

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

2 番目の例:

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

こちらもご覧ください

適用対象

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

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

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

パラメーター

condition
Boolean

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

message
Debug.WriteIfInterpolatedStringHandler

書き込むメッセージ。

category
String

出力を整理するために使用されるカテゴリ名。

属性

注釈

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

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

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

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

こちらもご覧ください

適用対象

WriteLineIf(Boolean, String, String)

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

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

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

パラメーター

condition
Boolean

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

message
String

書き込むメッセージ。

category
String

出力を整理するために使用されるカテゴリ名。

属性

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

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

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

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

public:
   static void MyErrorMethod( String^ category )
   {
      // 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::WriteLineIf( generalSwitch->TraceVerbose, 
         "My second error message.", category );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(string category)
{
    // 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.WriteLineIf(generalSwitch.TraceVerbose, "My second error message.", category);
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(category As String)
    ' 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.WriteLineIf(generalSwitch.TraceVerbose, "My second error message.", category)
End Sub

注釈

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

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

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

注意 (継承者)

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

最初の例:

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

2 番目の例:

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

こちらもご覧ください

適用対象