次の方法で共有


Trace.WriteIf メソッド

定義

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

オーバーロード

WriteIf(Boolean, String, String)

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

WriteIf(Boolean, Object, String)

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

WriteIf(Boolean, Object)

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

WriteIf(Boolean, String)

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

WriteIf(Boolean, String, String)

ソース:
Trace.cs
ソース:
Trace.cs
ソース:
Trace.cs

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

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

パラメーター

condition
Boolean

メッセージを書き込む true。それ以外の場合は、falseします。

message
String

書き込むメッセージ。

category
String

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

属性

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

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

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

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

public:
   static void MyErrorMethod( Object^ myObject, String^ category )
   {
      #if defined(TRACE)
      // Write the message if the TraceSwitch level is set to Verbose.
      Trace::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 Error or higher.
      Trace::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.
    Trace.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.
    Trace.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.
    Trace.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.
    Trace.WriteLineIf(generalSwitch.TraceError, _
        " Please use a different category.")
End Sub

注釈

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

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

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

注意 (継承者)

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

最初の例

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

2 番目の例の

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

こちらもご覧ください

適用対象

WriteIf(Boolean, Object, String)

ソース:
Trace.cs
ソース:
Trace.cs
ソース:
Trace.cs

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

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

パラメーター

condition
Boolean

メッセージを書き込む true。それ以外の場合は、falseします。

value
Object

Listenersに名前が送信される Object

category
String

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

属性

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

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

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

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

public:
   static void MyErrorMethod( Object^ myObject, String^ category )
   {
      #if defined(TRACE)
      // Write the message if the TraceSwitch level is set to Verbose.
      Trace::WriteIf( generalSwitch->TraceVerbose, myObject, category );
      
      // Write a second message if the TraceSwitch level is set to
      // Error or higher.
      Trace::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.
    Trace.WriteIf(generalSwitch.TraceVerbose, myObject, category);

    // Write a second message if the TraceSwitch level is set to Error or higher.
    Trace.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.
    Trace.WriteIf(generalSwitch.TraceVerbose, myObject, category)
    
    ' Write a second message if the TraceSwitch level is set to Error or higher.
    Trace.WriteLineIf(generalSwitch.TraceError, _
        " Object is not valid for this category.")
End Sub

注釈

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

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

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

注意 (継承者)

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

最初の例

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

2 番目の例の

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

こちらもご覧ください

適用対象

WriteIf(Boolean, Object)

ソース:
Trace.cs
ソース:
Trace.cs
ソース:
Trace.cs

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

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

パラメーター

condition
Boolean

メッセージを書き込む true。それ以外の場合は、falseします。

value
Object

Listenersに名前が送信される Object

属性

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

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

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

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

public:
   static void MyErrorMethod( Object^ myObject )
   {
      #if defined(TRACE)
      // Write the message if the TraceSwitch level is set 
      // to Error or higher.
      Trace::WriteIf( generalSwitch->TraceError, myObject );
      
      // Write a second message if the TraceSwitch level is set
      // to Verbose.
      Trace::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.
    Trace.WriteIf(generalSwitch.TraceError, myObject);

    // Write a second message if the TraceSwitch level is set to Verbose.
    Trace.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.
    Trace.WriteIf(generalSwitch.TraceError, myObject)
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Trace.WriteLineIf(generalSwitch.TraceVerbose, _
        " is not a valid value for this method.")
End Sub

注釈

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

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

注意 (継承者)

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

最初の例

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

2 番目の例の

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

こちらもご覧ください

適用対象

WriteIf(Boolean, String)

ソース:
Trace.cs
ソース:
Trace.cs
ソース:
Trace.cs

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

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

パラメーター

condition
Boolean

メッセージを書き込む true。それ以外の場合は、falseします。

message
String

書き込むメッセージ。

属性

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

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

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

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

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

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

    // Write a second message if the TraceSwitch level is set to Verbose.
    Trace.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.
    Trace.WriteIf(generalSwitch.TraceError, "My error message. ")
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Trace.WriteLineIf(generalSwitch.TraceVerbose, "My second error message.")
End Sub

注釈

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

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

注意 (継承者)

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

最初の例

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

2 番目の例の

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

こちらもご覧ください

適用対象