Debug.WriteLineIf 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
如果條件 true
,請將偵錯的相關信息寫入 Listeners 集合中的追蹤接聽程式。
多載
WriteLineIf(Boolean, Object, String) |
如果條件是 |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
如果指定的條件 |
WriteLineIf(Boolean, Object) |
如果條件是 |
WriteLineIf(Boolean, String) |
如果條件 |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
如果指定的條件 |
WriteLineIf(Boolean, String, String) |
如果條件 |
WriteLineIf(Boolean, Object, String)
- 來源:
- Debug.cs
- 來源:
- Debug.cs
- 來源:
- Debug.cs
如果條件是 true
,請將物件的 ToString() 方法的類別名稱和值寫入至 Listeners 集合中的追蹤接聽程式。
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
,則類別名稱和值會寫入集合中的追蹤接聽程式。
- category
- String
用來組織輸出的類別名稱。
- 屬性
範例
下列範例會建立名為 generalSwitch
TraceSwitch。 這個參數是在程式碼範例之外設定的。
如果參數設定為 TraceLevelError
或更高版本,則此範例會將第一個錯誤訊息輸出至 Listeners。 如需將接聽程式新增至 Listeners 集合的詳細資訊,請參閱 TraceListenerCollection 類別。
然後,如果 TraceLevel 設定為 Verbose
,則此範例會在與第一個訊息相同的行上輸出第二個錯誤訊息。 行終止符遵循第二則訊息。
// 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 方法。
給繼承者的注意事項
您可以使用 If...Then
語句,而不是使用 WriteLineIf(Boolean, String) 語句,將檢測應用程式的效能降低到最低。 下列兩個程式代碼範例會傳送相同的偵錯訊息。 不過,當追蹤關閉時,第一個範例會更快,因為如果 mySwitch.TraceError
評估為 false
,則不會呼叫 WriteLine(String)。 第二個範例一律會呼叫 WriteLineIf(Boolean, String),即使 mySwitch.TraceError
false
,也不會產生追蹤輸出。 這可能會導致不必要地執行任意複雜的程序代碼。
第一個範例:
if(mySwitch.TraceError)
Debug.WriteLine("aNumber = " + aNumber + " out of range");
第二個範例:
Debug.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
另請參閱
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
適用於
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
,訊息就會寫入集合中的追蹤接聽程式。
要寫入的訊息。
- 屬性
備註
此多載是在 .NET 6 中引進,以改善效能。 相較於採用 String
參數的多載,此多載只會在需要訊息時評估任何插補字串格式專案。
根據預設,輸出會寫入 DefaultTraceListener實例。
這個方法會呼叫追蹤接聽程式的 TraceListener.WriteLine 方法。
另請參閱
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
適用於
WriteLineIf(Boolean, Object)
- 來源:
- Debug.cs
- 來源:
- Debug.cs
- 來源:
- Debug.cs
如果條件是 true
,請將物件的 ToString() 方法值寫入 Listeners 集合中的追蹤接聽項。
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
,則值會寫入集合中的追蹤接聽程式。
- 屬性
範例
下列範例會建立名為 generalSwitch
TraceSwitch。 這個參數是在程式碼範例之外設定的。
如果參數設定為 TraceLevelError
或更高版本,則此範例會將第一個錯誤訊息輸出至 Listeners。 如需將接聽程式新增至 Listeners 集合的詳細資訊,請參閱 TraceListenerCollection 類別。
然後,如果 TraceLevel 設定為 Verbose
,則此範例會在與第一則訊息相同的行輸出物件名稱。 行終止符遵循第二則訊息。
// 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 方法。
給繼承者的注意事項
您可以使用 If...Then
語句,而不是使用 WriteLineIf(Boolean, String) 語句,將檢測應用程式的效能降低到最低。 下列兩個程式代碼範例會傳送相同的偵錯訊息。 不過,當追蹤關閉時,第一個範例會更快,因為如果 mySwitch.TraceError
評估為 false
,則不會呼叫 WriteLine(String)。 第二個範例一律會呼叫 WriteLineIf(Boolean, String),即使 mySwitch.TraceError
false
,也不會產生追蹤輸出。 這可能會導致不必要地執行任意複雜的程序代碼。
第一個範例:
if(mySwitch.TraceError)
Debug.WriteLine("aNumber = " + aNumber + " out of range");
第二個範例:
Debug.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
另請參閱
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
適用於
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 類別。
然後,如果 TraceLevel 設定為 Verbose
,則此範例會在與第一個訊息相同的行上輸出第二個錯誤訊息。 行終止符遵循第二則訊息。
// 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 方法。
給繼承者的注意事項
您可以使用 If...Then
語句,而不是使用 WriteLineIf(Boolean, String) 語句,將檢測應用程式的效能降低到最低。 下列兩個程式代碼範例會傳送相同的偵錯訊息。 不過,當追蹤關閉時,第一個範例會更快,因為如果 mySwitch.TraceError
評估為 false
,則不會呼叫 WriteLine(String)。 第二個範例一律會呼叫 WriteLineIf(Boolean, String),即使 mySwitch.TraceError
false
,也不會產生追蹤輸出。 這可能會導致不必要地執行任意複雜的程序代碼。
第一個範例:
if(mySwitch.TraceError)
Debug.WriteLine("aNumber = " + aNumber + " out of range");
第二個範例:
Debug.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
另請參閱
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
適用於
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
,訊息和類別名稱會寫入集合中的追蹤接聽程式。
要寫入的訊息。
- category
- String
用來組織輸出的類別名稱。
- 屬性
備註
此多載是在 .NET 6 中引進,以改善效能。 相較於採用 String
參數的多載,此多載只會在需要訊息時評估任何插補字串格式專案。
根據預設,輸出會寫入 DefaultTraceListener實例。
category
參數可用來將輸出訊息分組。
這個方法會呼叫追蹤接聽程式的 TraceListener.WriteLine 方法。
另請參閱
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
適用於
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
,訊息和cateogry名稱會寫入集合中的追蹤接聽程式。
- message
- String
要寫入的訊息。
- category
- String
用來組織輸出的類別名稱。
- 屬性
範例
下列範例會建立名為 generalSwitch
TraceSwitch。 這個參數是在程式碼範例之外設定的。
如果參數設定為 TraceLevelError
或更高版本,則此範例會將第一個錯誤訊息輸出至 Listeners。 如需將接聽程式新增至 Listeners 集合的詳細資訊,請參閱 TraceListenerCollection 類別。
然後,如果 TraceLevel 設定為 Verbose
,則此範例會輸出第二個錯誤訊息,並在與第一則訊息相同的行上輸出 category
。 行終止符遵循第二則訊息。
// 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 方法。
給繼承者的注意事項
您可以使用 If...Then
語句,而不是使用 WriteLineIf(Boolean, String) 語句,將檢測應用程式的效能降低到最低。 下列兩個程式代碼範例會傳送相同的偵錯訊息。 不過,當追蹤關閉時,第一個範例會更快,因為如果 mySwitch.TraceError
評估為 false
,則不會呼叫 WriteLine(String)。 第二個範例一律會呼叫 WriteLineIf(Boolean, String),即使 mySwitch.TraceError
false
,也不會產生追蹤輸出。 這可能會導致不必要地執行任意複雜的程序代碼。
第一個範例:
if(mySwitch.TraceError)
Debug.WriteLine("aNumber = " + aNumber + " out of range");
第二個範例:
Debug.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
另請參閱
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute