Trace.WriteLineIf メソッド (Boolean, String, String)
条件が true の場合、カテゴリ名とメッセージを Listeners レクションのトレース リスナに書き込みます。
<Conditional("TRACE")>
Overloads Public Shared Sub WriteLineIf( _ ByVal condition As Boolean, _ ByVal message As String, _ ByVal category As String _)
[C#]
[Conditional("TRACE")]
public static void WriteLineIf(boolcondition,stringmessage,stringcategory);
[C++]
[Conditional("TRACE")]
public: static void WriteLineIf(boolcondition,String* message,String* category);
[JScript]
public
Conditional("TRACE")
static function WriteLineIf(condition : Boolean,message : String,category : String);
パラメータ
- condition
メッセージを書き込む場合は true 。それ以外の場合は false 。 - message
書き込むメッセージ。 - category
出力を編成するために使用されるカテゴリ名。
解説
既定では、出力は DefaultTraceListener のインスタンスに書き込まれます。
Category パラメータは、出力メッセージをグループ化するために使用できます。
このメソッドは、トレース リスナの WriteLine メソッドを呼び出します。
実装時の注意: WriteLineIf ステートメントの代わりに If...Then ステートメントを使用することによって、アプリケーション導入によるパフォーマンスの低下を最小限にとどめることができます。次の 2 つのコード例は、同じデバッグ メッセージを送信します。しかし、トレースがオフである場合は、最初の例の方がはるかに高速です。これは、 mySwitch.TraceError
が false と評価されると、 WriteLine を呼び出さないからです。第 2 の例では、 mySwitch.TraceError
が false でトレース出力が生成されない場合でも、常に WriteLineIf が呼び出されます。これにより、必要以上に複雑なコードが、不必要に実行される可能性があります。
最初の例。
if(mySwitch.TraceError)
Trace.WriteLine("aNumber = " + aNumber + " out of range");
第 2 の例。
Trace.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
使用例
generalSwitch
という名前の TraceSwitch を作成する例を次に示します。このスイッチは、コード サンプルの外部で設定されています。
スイッチが TraceLevel Error 以上に設定されている場合、この例では、最初のエラー メッセージが Listeners に出力されます。 Listeners コレクションにリスナを追加する方法については、 TraceListenerCollection クラスのトピックを参照してください。
TraceLevel が Verbose に設定されている場合、この例では、最初のメッセージと同じ行に 2 番目のエラー メッセージと category
が表示されます。2 番目のメッセージの後に行終端記号が続きます。
' 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.
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.", category)
End Sub
[C#]
// 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.
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.", category);
}
[C++]
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch* generalSwitch = new TraceSwitch(S"General", S"Entire Application");
public:
static void MyErrorMethod(String* category) {
// Write the message if the TraceSwitch level is set to Error or higher.
Trace::WriteIf(generalSwitch->TraceError, S"My error message. ");
// Write a second message if the TraceSwitch level is set to Verbose.
Trace::WriteLineIf(generalSwitch->TraceVerbose, S"My second error message.", category);
}
[JScript]
// Create a TraceSwitch.
var generalSwitch : TraceSwitch = new TraceSwitch("General", "Entire Application")
function MyErrorMethod(myObject : Object, category : String){
// Write the message if the TraceSwitch level is set to Verbose.
Trace.WriteLineIf(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.")
}
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
Trace クラス | Trace メンバ | System.Diagnostics 名前空間 | Trace.WriteLineIf オーバーロードの一覧 | Debug | Trace | BooleanSwitch | TraceSwitch | TraceListener | DefaultTraceListener | ConditionalAttribute | ConditionalAttribute | ConditionalAttribute | ConditionalAttribute | ConditionalAttribute