Trace.WriteLineIf 方法

定义

将有关跟踪的信息写入集合中的 Listeners 跟踪侦听器(如果条件为 true)。

重载

名称 说明
WriteLineIf(Boolean, Object, String)

将类别名称和对象 ToString() 方法的值写入集合中的 Listeners 跟踪侦听器(如果条件为 true)。

WriteLineIf(Boolean, Object)

将对象 ToString() 方法的值写入集合中的 Listeners 跟踪侦听器(如果条件为 true)。

WriteLineIf(Boolean, String)

如果条件为 Listeners,则向集合中的true跟踪侦听器写入消息。

WriteLineIf(Boolean, String, String)

如果条件为 Listeners,则向集合中的true跟踪侦听器写入类别名称和消息。

WriteLineIf(Boolean, Object, String)

Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs

将类别名称和对象 ToString() 方法的值写入集合中的 Listeners 跟踪侦听器(如果条件为 true)。

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。 此开关在代码示例外部设置。

如果开关设置为TraceLevelError或更高版本,则示例将第一条错误消息输出到 。Listeners 有关向集合添加侦听器 Listeners 的信息,请参阅该 TraceListenerCollection 类。

然后,如果设置为 TraceLevelVerbose该示例将输出第二条错误消息,该错误消息与第一条消息位于同一行。 第二条消息后跟行终止符。

// 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)

Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs

将对象 ToString() 方法的值写入集合中的 Listeners 跟踪侦听器(如果条件为 true)。

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。 此开关在代码示例外部设置。

如果开关设置为TraceLevelError或更高版本,则示例将第一条错误消息输出到 。Listeners 有关向集合添加侦听器 Listeners 的信息,请参阅该 TraceListenerCollection 类。

然后,如果设置为TraceLevelVerbose对象,则该示例将输出与第一条消息相同的行上的对象名称。 第二条消息后跟行终止符。

// 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)

Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs

如果条件为 Listeners,则向集合中的true跟踪侦听器写入消息。

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。 此开关在代码示例外部设置。

如果开关设置为TraceLevelError或更高版本,则示例将第一条错误消息输出到 。Listeners 有关向集合添加侦听器 Listeners 的信息,请参阅该 TraceListenerCollection 类。

然后,如果设置为 TraceLevelVerbose该示例将输出第二条错误消息,该错误消息与第一条消息位于同一行。 第二条消息后跟行终止符。

// 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)

Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs
Source:
Trace.cs

如果条件为 Listeners,则向集合中的true跟踪侦听器写入类别名称和消息。

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。 此开关在代码示例外部设置。

如果开关设置为TraceLevelError或更高版本,则示例将第一条错误消息输出到 。Listeners 有关向集合添加侦听器 Listeners 的信息,请参阅该 TraceListenerCollection 类。

然后,如果设置为TraceLevelVerbose示例,则示例将输出第二条错误消息和category第一条消息所在的同一行。 第二条消息后跟行终止符。

// 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");

另请参阅

适用于