Trace.WriteLineIf 方法

定義

如果條件為 true,則將追蹤資訊寫入 Listeners 集合中的追蹤接聽項。

多載

WriteLineIf(Boolean, Object, String)

如果條件為 true,則將物件之 ToString() 方法的分類名稱和值寫入 Listeners 集合中的追蹤接聽項。

WriteLineIf(Boolean, Object)

如果條件為 true,則將物件的 ToString() 方法值寫入 Listeners 集合中的追蹤接聽項。

WriteLineIf(Boolean, String)

如果條件為 true,則將訊息寫入 Listeners 集合中的追蹤接聽項。

WriteLineIf(Boolean, String, String)

如果條件是 true,則將分類名稱和訊息寫入 Listeners 集合中的追蹤接聽項。

WriteLineIf(Boolean, Object, String)

如果條件為 true,則將物件之 ToString() 方法的分類名稱和值寫入 Listeners 集合中的追蹤接聽項。

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

參數

condition
Boolean

true 會寫入訊息,否則為 false

value
Object

Object,其名稱會傳送到 Listeners

category
String

用來組織輸出的類別名稱。

屬性

範例

下列範例會 TraceSwitch 建立名為 generalSwitch 的 。 此參數是在程式碼範例之外設定。

如果參數設定為 TraceLevel Error 或更新版本,則範例會將第一個錯誤訊息輸出至 Listeners 。 如需將接聽程式新增至 Listeners 集合的資訊,請參閱 類別 TraceListenerCollection

然後,如果 TraceLevel 設定為 Verbose ,則範例會在與第一個訊息相同的行上輸出第二個錯誤訊息。 第二則訊息後面接著行結束字元。

// 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 Error or higher.
      Trace::WriteIf( generalSwitch->TraceError, 
         "Invalid object for category. " );
      
      // Write a second message if the TraceSwitch level is set
      // to Verbose.
      Trace::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.
    Trace.WriteIf(generalSwitch.TraceError, "Invalid object for category. ");

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

備註

根據預設,輸出會寫入 的 DefaultTraceListener 實例。

參數 category 可用來將輸出訊息分組。

這個方法會 WriteLine 呼叫追蹤接聽程式的 方法。

給繼承者的注意事項

您可以使用 語句而非 using If...Then WriteLineIf(Boolean, String) 語句,將檢測應用程式的效能負面影響降到最低。 下列兩個程式碼範例會傳送相同的偵錯訊息。 不過,當追蹤關閉時,第一個範例會比較快,因為如果 mySwitch.TraceError 評估為 false 您未呼叫 WriteLine(String) 。 第二個範例一律會呼叫 WriteLineIf(Boolean, String) ,即使 mySwitch.TraceErrorfalse ,也不會產生追蹤輸出。 這可能會導致不必要地執行任意複雜的程式碼。

第一個範例

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

第二個範例

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

另請參閱

適用於

WriteLineIf(Boolean, Object)

如果條件為 true,則將物件的 ToString() 方法值寫入 Listeners 集合中的追蹤接聽項。

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

參數

condition
Boolean

true 會寫入訊息,否則為 false

value
Object

Object,其名稱會傳送到 Listeners

屬性

範例

下列範例會 TraceSwitch 建立名為 generalSwitch 的 。 此參數是在程式碼範例之外設定。

如果參數設定為 TraceLevel Error 或更新版本,則範例會將第一個錯誤訊息輸出至 Listeners 。 如需將接聽程式新增至 Listeners 集合的資訊,請參閱 類別 TraceListenerCollection

然後,如果 TraceLevel 設定為 Verbose ,則範例會在與第一個訊息相同的行上輸出物件的名稱。 第二則訊息後面接著行結束字元。

// 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, "Invalid object. " );
      
      // Write a second message if the TraceSwitch level is set
      // to Verbose.
      Trace::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.
    Trace.WriteIf(generalSwitch.TraceError, "Invalid object. ");

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

備註

根據預設,輸出會寫入 的 DefaultTraceListener 實例。

這個方法會 WriteLine 呼叫追蹤接聽程式的 方法。

給繼承者的注意事項

您可以使用 語句而非 using If...Then WriteLineIf(Boolean, String) 語句,將檢測應用程式的效能負面影響降到最低。 下列兩個程式碼範例會傳送相同的偵錯訊息。 不過,當追蹤關閉時,第一個範例會比較快,因為如果 mySwitch.TraceError 評估為 false 您未呼叫 WriteLine(String) 。 第二個範例一律會呼叫 WriteLineIf(Boolean, String) ,即使 mySwitch.TraceErrorfalse ,也不會產生追蹤輸出。 這可能會導致不必要地執行任意複雜的程式碼。

第一個範例

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

第二個範例

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

另請參閱

適用於

WriteLineIf(Boolean, String)

如果條件為 true,則將訊息寫入 Listeners 集合中的追蹤接聽項。

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

參數

condition
Boolean

true 會寫入訊息,否則為 false

message
String

要寫入的訊息。

屬性

範例

下列範例會 TraceSwitch 建立名為 generalSwitch 的 。 此參數是在程式碼範例之外設定。

如果參數設定為 TraceLevel Error 或更新版本,則範例會將第一個錯誤訊息輸出至 Listeners 。 如需將接聽程式新增至 Listeners 集合的資訊,請參閱 類別 TraceListenerCollection

然後,如果 TraceLevel 設定為 Verbose ,則範例會在與第一個訊息相同的行上輸出第二個錯誤訊息。 第二則訊息後面接著行結束字元。

// 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 實例。

這個方法會 WriteLine 呼叫追蹤接聽程式的 方法。

給繼承者的注意事項

您可以使用 語句而非 using If...Then WriteLineIf(Boolean, String) 語句,將檢測應用程式的效能負面影響降到最低。 下列兩個程式碼範例會傳送相同的偵錯訊息。 不過,當追蹤關閉時,第一個範例會比較快,因為如果 mySwitch.TraceError 評估為 false 您未呼叫 WriteLine(String) 。 第二個範例一律會呼叫 WriteLineIf(Boolean, String) ,即使 mySwitch.TraceErrorfalse ,也不會產生追蹤輸出。 這可能會導致不必要地執行任意複雜的程式碼。

第一個範例

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

第二個範例

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

另請參閱

適用於

WriteLineIf(Boolean, String, String)

如果條件是 true,則將分類名稱和訊息寫入 Listeners 集合中的追蹤接聽項。

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

參數

condition
Boolean

true 會寫入訊息,否則為 false

message
String

要寫入的訊息。

category
String

用來組織輸出的類別名稱。

屬性

範例

下列範例會 TraceSwitch 建立名為 generalSwitch 的 。 此參數是在程式碼範例之外設定。

如果參數設定為 TraceLevel Error 或更新版本,則範例會將第一個錯誤訊息輸出至 Listeners 。 如需將接聽程式新增至 Listeners 集合的資訊,請參閱 類別 TraceListenerCollection

然後,如果 TraceLevel 設定為 Verbose ,則範例會輸出第二個錯誤訊息,並在 category 與第一個訊息相同的行上輸出 。 第二則訊息後面接著行結束字元。

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

public:
   static void MyErrorMethod( String^ category )
   {
      #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.", 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.
    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);
 }
' 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

備註

根據預設,輸出會寫入 的 DefaultTraceListener 實例。

參數 category 可用來將輸出訊息分組。

這個方法會 WriteLine 呼叫追蹤接聽程式的 方法。

給繼承者的注意事項

您可以使用 語句而非 using If...Then WriteLineIf(Boolean, String) 語句,將檢測應用程式的效能負面影響降到最低。 下列兩個程式碼範例會傳送相同的偵錯訊息。 不過,當追蹤關閉時,第一個範例會比較快,因為如果 mySwitch.TraceError 評估為 false 您未呼叫 WriteLine(String) 。 第二個範例一律會呼叫 WriteLineIf(Boolean, String) ,即使 mySwitch.TraceErrorfalse ,也不會產生追蹤輸出。 這可能會導致不必要地執行任意複雜的程式碼。

第一個範例

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

第二個範例

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

另請參閱

適用於