Trace.WriteIf 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
如果条件 true
,则向 Listeners 集合中的跟踪侦听器写入有关跟踪的信息。
重载
WriteIf(Boolean, String, String) |
如果条件 |
WriteIf(Boolean, Object, String) |
如果条件 |
WriteIf(Boolean, Object) |
如果条件 |
WriteIf(Boolean, String) |
如果条件 |
WriteIf(Boolean, String, String)
- Source:
- Trace.cs
- Source:
- Trace.cs
- Source:
- 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
或更高版本,则该示例将输出第二条错误消息与第一条消息位于同一行。 第二条消息后跟行终止符。
// 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 方法。
继承者说明
可以使用 If...Then
语句而不是使用 WriteIf(Boolean, String) 语句来最大程度地减少检测应用程序的性能损失。 以下两个代码示例发送相同的调试消息。 但是,当跟踪关闭时,第一个示例要快得多,因为如果 mySwitch.TraceError
评估为 false
你不调用 Write(String)。 第二个示例始终调用 WriteIf(Boolean, String),即使 mySwitch.TraceError
false
,也不会生成跟踪输出。 这可能会导致不必要地执行任意复杂的代码。
第一个示例
if(mySwitch.TraceError)
Trace.Write("aNumber = " + aNumber + " out of range");
第二个示例
Trace.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
另请参阅
适用于
WriteIf(Boolean, Object, String)
- Source:
- Trace.cs
- Source:
- Trace.cs
- Source:
- 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
或更高版本,则该示例将输出第二条错误消息与第一条消息位于同一行。 第二条消息后跟行终止符。
// 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 方法。
继承者说明
可以使用 If...Then
语句而不是使用 WriteIf(Boolean, String) 语句来最大程度地减少检测应用程序的性能损失。 以下两个代码示例发送相同的调试消息。 但是,当跟踪关闭时,第一个示例要快得多,因为如果 mySwitch.TraceError
评估为 false
你不调用 Write(String)。 第二个示例始终调用 WriteIf(Boolean, String),即使 mySwitch.TraceError
false
,也不会生成跟踪输出。 这可能会导致不必要地执行任意复杂的代码。
第一个示例
if(mySwitch.TraceError)
Trace.Write("aNumber = " + aNumber + " out of range");
第二个示例
Trace.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
另请参阅
适用于
WriteIf(Boolean, Object)
- Source:
- Trace.cs
- Source:
- Trace.cs
- Source:
- Trace.cs
如果条件 true
,将对象的 ToString() 方法的值写入 Listeners 集合中的跟踪侦听器。
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
或更高版本,则示例将值参数的名字输出到 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, 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 方法。
继承者说明
可以使用 If...Then
语句而不是使用 WriteIf(Boolean, String) 语句来最大程度地减少检测应用程序的性能损失。 以下两个代码示例发送相同的调试消息。 但是,当跟踪关闭时,第一个示例要快得多,因为如果 mySwitch.TraceError
评估为 false
你不调用 Write(String)。 第二个示例始终调用 WriteIf(Boolean, String),即使 mySwitch.TraceError
false
,也不会生成跟踪输出。 这可能会导致不必要地执行任意复杂的代码。
第一个示例
if(mySwitch.TraceError)
Trace.Write("aNumber = " + aNumber + " out of range");
第二个示例
Trace.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
另请参阅
适用于
WriteIf(Boolean, String)
- Source:
- Trace.cs
- Source:
- Trace.cs
- Source:
- 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
,则该示例将输出第二条错误消息,该错误消息与第一条消息位于同一行。 第二条消息后跟行终止符。
// 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 方法。
继承者说明
可以使用 If...Then
语句而不是使用 WriteIf(Boolean, String) 语句来最大程度地减少检测应用程序的性能损失。 以下两个代码示例发送相同的调试消息。 但是,当跟踪关闭时,第一个示例要快得多,因为如果 mySwitch.TraceError
评估为 false
你不调用 Write(String)。 第二个示例始终调用 WriteIf(Boolean, String),即使 mySwitch.TraceError
false
,也不会生成跟踪输出。 这可能会导致不必要地执行任意复杂的代码。
第一个示例
if(mySwitch.TraceError)
Trace.Write("aNumber = " + aNumber + " out of range");
第二个示例
Trace.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");