Debug.WriteLineIf Метод

Определение

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

Перегрузки

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

WriteLineIf(Boolean, Object)

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

WriteLineIf(Boolean, String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteLineIf(Boolean, String, String)

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

WriteLineIf(Boolean, Object, String)

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

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, имя категории и значение записываются в прослушиватели трассировки в коллекции.

value
Object

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

category
String

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

Атрибуты

Примеры

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

Если для параметра задано TraceLevel Error значение или выше, в примере выводится первое сообщение об ошибке 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 помощью инструкций вместо инструкций using 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");

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

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

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, сообщение записывается в прослушиватели трассировки в коллекции.

message
Debug.WriteIfInterpolatedStringHandler

Сообщение для записи.

Атрибуты

Комментарии

Эта перегрузка была введена в .NET 6 для повышения производительности. В сравнении с перегрузками, которые принимают String параметр, эта перегрузка оценивает только любые интерполированные элементы форматирования строк, если требуется сообщение.

По умолчанию выходные данные записываются в экземпляр DefaultTraceListener.

Этот метод вызывает TraceListener.WriteLine метод прослушивателя трассировки.

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

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

WriteLineIf(Boolean, Object)

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

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, значение записывается в прослушиватели трассировки в коллекции.

value
Object

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

Атрибуты

Примеры

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

Если для параметра задано TraceLevel Error значение или выше, в примере выводится первое сообщение об ошибке 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 помощью инструкций вместо инструкций using 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");

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

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

WriteLineIf(Boolean, String)

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

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

Сообщение для записи.

Атрибуты

Примеры

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

Если для параметра задано TraceLevel Error значение или выше, в примере выводится первое сообщение об ошибке 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 помощью инструкций вместо инструкций using 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");

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

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

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, имя сообщения и категории записываются в прослушиватели трассировки в коллекции.

message
Debug.WriteIfInterpolatedStringHandler

Сообщение для записи.

category
String

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

Атрибуты

Комментарии

Эта перегрузка была введена в .NET 6 для повышения производительности. В сравнении с перегрузками, которые принимают String параметр, эта перегрузка оценивает только любые интерполированные элементы форматирования строк, если требуется сообщение.

По умолчанию выходные данные записываются в экземпляр DefaultTraceListener.

Параметр category можно использовать для группировки выходных сообщений.

Этот метод вызывает TraceListener.WriteLine метод прослушивателя трассировки.

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

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

WriteLineIf(Boolean, String, String)

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

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

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

Атрибуты

Примеры

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

Если для параметра задано TraceLevel Error значение или выше, в примере выводится первое сообщение об ошибке 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 помощью инструкций вместо инструкций using 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");

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

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