Trace.WriteIf メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
条件が true
場合は、Listeners コレクション内のトレース リスナーにトレースに関する情報を書き込みます。
オーバーロード
WriteIf(Boolean, String, String) |
条件が |
WriteIf(Boolean, Object, String) |
条件が |
WriteIf(Boolean, Object) |
条件が |
WriteIf(Boolean, String) |
条件が |
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 クラスを参照してください。
次に、TraceLevel が Error
以上に設定されている場合、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.TraceError
が false
に評価された場合、Write(String)を呼び出さないためです。 2 番目の例では、mySwitch.TraceError
が false
され、トレース出力が生成されない場合でも、常に 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
します。
- category
- String
出力を整理するために使用されるカテゴリ名。
- 属性
例
次の例では、generalSwitch
という名前の TraceSwitch を作成します。 このスイッチは、コード サンプルの外部で設定されます。
スイッチを TraceLevelVerbose
に設定すると、myObject
の名前と category
が Listenersに出力されます。
Listeners コレクションにリスナーを追加する方法については、TraceListenerCollection クラスを参照してください。
次に、TraceLevel が Error
以上に設定されている場合、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.TraceError
が false
に評価された場合、Write(String)を呼び出さないためです。 2 番目の例では、mySwitch.TraceError
が false
され、トレース出力が生成されない場合でも、常に 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
します。
- 属性
例
次の例では、generalSwitch
という名前の TraceSwitch を作成します。 このスイッチは、コード サンプルの外部で設定されます。
スイッチが TraceLevelError
以上に設定されている場合、この例では value パラメーターの名を Listenersに出力します。
Listeners コレクションにリスナーを追加する方法については、TraceListenerCollection クラスを参照してください。
次に、TraceLevel を Verbose
に設定すると、最初のメッセージと同じ行にメッセージが出力されます。 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.TraceError
が false
に評価された場合、Write(String)を呼び出さないためです。 2 番目の例では、mySwitch.TraceError
が false
され、トレース出力が生成されない場合でも、常に 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 クラスを参照してください。
次に、TraceLevel が Verbose
に設定されている場合、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.TraceError
が false
に評価された場合、Write(String)を呼び出さないためです。 2 番目の例では、mySwitch.TraceError
が false
され、トレース出力が生成されない場合でも、常に WriteIf(Boolean, String)を呼び出します。 これにより、任意に複雑なコードが不要に実行される可能性があります。
最初の例
if(mySwitch.TraceError)
Trace.Write("aNumber = " + aNumber + " out of range");
2 番目の例の
Trace.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
こちらもご覧ください
適用対象
.NET