Поделиться через


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)

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

Записывает имя категории и значение метода 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. Этот параметр задается за пределами примера кода.

Если для параметра задано значение 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.TraceErrorfalse и выходные данные трассировки не создаются. Это может привести к ненужным выполнению произвольно сложного кода.

Первый пример:

if(mySwitch.TraceError)
    Debug.WriteLine("aNumber = " + aNumber + " out of range");

Второй пример:

Debug.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

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

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

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

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

Записывает значение метода 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. Этот параметр задается за пределами примера кода.

Если для параметра задано значение 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.TraceErrorfalse и выходные данные трассировки не создаются. Это может привести к ненужным выполнению произвольно сложного кода.

Первый пример:

if(mySwitch.TraceError)
    Debug.WriteLine("aNumber = " + aNumber + " out of range");

Второй пример:

Debug.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

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

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

WriteLineIf(Boolean, String)

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

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

Если для параметра задано значение 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.TraceErrorfalse и выходные данные трассировки не создаются. Это может привести к ненужным выполнению произвольно сложного кода.

Первый пример:

if(mySwitch.TraceError)
    Debug.WriteLine("aNumber = " + aNumber + " out of range");

Второй пример:

Debug.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

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

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

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

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

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

message
String

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

category
String

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

Атрибуты

Примеры

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

Если для параметра задано значение 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.TraceErrorfalse и выходные данные трассировки не создаются. Это может привести к ненужным выполнению произвольно сложного кода.

Первый пример:

if(mySwitch.TraceError)
    Debug.WriteLine("aNumber = " + aNumber + " out of range");

Второй пример:

Debug.WriteLineIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

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

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