Trace.WriteIf Метод

Определение

Записывает сведения о трассировке в прослушиватели трассировки в коллекции Listeners, если условием является true.

Перегрузки

WriteIf(Boolean, String, String)

Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners, если условие равно true.

WriteIf(Boolean, Object, String)

Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если задано условие true.

WriteIf(Boolean, Object)

Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если условие — true.

WriteIf(Boolean, String)

Записывает сообщение в прослушиватели трассировки в коллекции Listeners, если задано условие true.

WriteIf(Boolean, String, String)

Исходный код:
Trace.cs
Исходный код:
Trace.cs
Исходный код:
Trace.cs

Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners, если условие равно true.

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

Имя категории, используемое для систематизации выходных данных.

Атрибуты

Примеры

В следующем примере создается объект с TraceSwitch именем generalSwitch. Этот параметр задается за пределами примера кода.

Если для параметра задано 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 инструкций вместо операторов using 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)

Исходный код:
Trace.cs
Исходный код:
Trace.cs
Исходный код:
Trace.cs

Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если задано условие true.

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.

value
Object

Объект Object, имя которого отправляется к Listeners.

category
String

Имя категории, используемое для систематизации выходных данных.

Атрибуты

Примеры

В следующем примере создается объект с TraceSwitch именем generalSwitch. Этот параметр задается за пределами примера кода.

Если параметр имеет значение TraceLevelVerbose, в примере выводится имя myObject и в categoryListeners. Сведения о добавлении прослушивателя в коллекцию 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 инструкций вместо операторов using 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)

Исходный код:
Trace.cs
Исходный код:
Trace.cs
Исходный код:
Trace.cs

Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если условие — true.

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.

value
Object

Объект Object, имя которого отправляется к Listeners.

Атрибуты

Примеры

В следующем примере создается объект с TraceSwitch именем generalSwitch. Этот параметр задается за пределами примера кода.

Если для параметра задано 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 инструкций вместо операторов using 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)

Исходный код:
Trace.cs
Исходный код:
Trace.cs
Исходный код:
Trace.cs

Записывает сообщение в прослушиватели трассировки в коллекции Listeners, если задано условие true.

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

Записываемое сообщение.

Атрибуты

Примеры

В следующем примере создается объект с TraceSwitch именем generalSwitch. Этот параметр задается за пределами примера кода.

Если параметр имеет значение 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 инструкций вместо операторов using 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");  

См. также раздел

Применяется к