Прочитать на английском

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


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.

C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, object value, string category);
C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, object? value, string? category);

Параметры

condition
Boolean

Условное выражение для вычисления. Если условие true, имя и значение категории записываются в прослушиватели трассировки в коллекции.

value
Object

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

category
String

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

Атрибуты

Примеры

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

Если для параметра задано значение TraceLevelError или более поздней версии, в примере выводится первое сообщение об ошибке в Listeners. Сведения о добавлении прослушивателя в коллекцию Listeners см. в классе TraceListenerCollection.

Затем, если для TraceLevel задано значение Verbose, в примере выводится второе сообщение об ошибке в той же строке, что и первое сообщение. Терминатор строки следует второму сообщению.

C#
// 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);
}

Комментарии

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

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

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

Примечания для тех, кто наследует этот метод

Вы можете свести к минимуму производительность инструментирования приложения с помощью инструкций If...Then вместо использования WriteLineIf(Boolean, String) инструкций. В следующих двух примерах кода отправляется одно и то же сообщение отладки. Однако первый пример гораздо быстрее при отключении трассировки, так как если mySwitch.TraceError оценивается false, не вызывайте WriteLine(String). Второй пример всегда вызывает WriteLineIf(Boolean, String), даже если mySwitch.TraceErrorfalse и выходные данные трассировки не создаются. Это может привести к ненужным выполнению произвольно сложного кода.

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

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

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

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

C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message);

Параметры

condition
Boolean

Условное выражение для вычисления. Если условие true, сообщение записывается в прослушиватели трассировки в коллекции.

message
Debug.WriteIfInterpolatedStringHandler

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

Атрибуты

Комментарии

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

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.NET 6, 7, 8, 9

WriteLineIf(Boolean, Object)

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

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

C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, object value);
C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, object? value);

Параметры

condition
Boolean

Условное выражение для вычисления. Если условие true, значение записывается в прослушиватели трассировки в коллекции.

value
Object

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

Атрибуты

Примеры

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

Если для параметра задано значение TraceLevelError или более поздней версии, в примере выводится первое сообщение об ошибке в Listeners. Сведения о добавлении прослушивателя в коллекцию Listeners см. в классе TraceListenerCollection.

Затем, если для TraceLevel задано значение Verbose, в примере выводится имя объекта в той же строке, что и первое сообщение. Терминатор строки следует второму сообщению.

C#
// 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);
}

Комментарии

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

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

Примечания для тех, кто наследует этот метод

Вы можете свести к минимуму производительность инструментирования приложения с помощью инструкций If...Then вместо использования WriteLineIf(Boolean, String) инструкций. В следующих двух примерах кода отправляется одно и то же сообщение отладки. Однако первый пример гораздо быстрее при отключении трассировки, так как если mySwitch.TraceError оценивается false, не вызывайте WriteLine(String). Второй пример всегда вызывает WriteLineIf(Boolean, String), даже если mySwitch.TraceErrorfalse и выходные данные трассировки не создаются. Это может привести к ненужным выполнению произвольно сложного кода.

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

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

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WriteLineIf(Boolean, String)

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

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

C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, string message);
C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, string? message);

Параметры

condition
Boolean

Условное выражение для вычисления. Если условие true, сообщение записывается в прослушиватели трассировки в коллекции.

message
String

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

Атрибуты

Примеры

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

Если для параметра задано значение TraceLevelError или более поздней версии, в примере выводится первое сообщение об ошибке в Listeners. Сведения о добавлении прослушивателя в коллекцию Listeners см. в классе TraceListenerCollection.

Затем, если для TraceLevel задано значение Verbose, в примере выводится второе сообщение об ошибке в той же строке, что и первое сообщение. Терминатор строки следует второму сообщению.

C#
// 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.");
}

Комментарии

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

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

Примечания для тех, кто наследует этот метод

Вы можете свести к минимуму производительность инструментирования приложения с помощью инструкций If...Then вместо использования WriteLineIf(Boolean, String) инструкций. В следующих двух примерах кода отправляется одно и то же сообщение отладки. Однако первый пример гораздо быстрее при отключении трассировки, так как если mySwitch.TraceError оценивается false, не вызывайте WriteLine(String). Второй пример всегда вызывает WriteLineIf(Boolean, String), даже если mySwitch.TraceErrorfalse и выходные данные трассировки не создаются. Это может привести к ненужным выполнению произвольно сложного кода.

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

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

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

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

C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message, string? category);

Параметры

condition
Boolean

Условное выражение для вычисления. Если условие true, имя сообщения и категории записываются в прослушиватели трассировки в коллекции.

message
Debug.WriteIfInterpolatedStringHandler

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

category
String

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

Атрибуты

Комментарии

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

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

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.NET 6, 7, 8, 9

WriteLineIf(Boolean, String, String)

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

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

C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, string message, string category);
C#
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf (bool condition, string? message, string? category);

Параметры

condition
Boolean

Условное выражение для вычисления. Если условие true, сообщение и имя катеогри записываются в прослушиватели трассировки в коллекции.

message
String

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

category
String

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

Атрибуты

Примеры

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

Если для параметра задано значение TraceLevelError или более поздней версии, в примере выводится первое сообщение об ошибке в Listeners. Сведения о добавлении прослушивателя в коллекцию Listeners см. в классе TraceListenerCollection.

Затем, если для TraceLevel задано значение Verbose, в примере выводится второе сообщение об ошибке и category в той же строке, что и первое сообщение. Терминатор строки следует второму сообщению.

C#
// 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);
}

Комментарии

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

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

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

Примечания для тех, кто наследует этот метод

Вы можете свести к минимуму производительность инструментирования приложения с помощью инструкций If...Then вместо использования WriteLineIf(Boolean, String) инструкций. В следующих двух примерах кода отправляется одно и то же сообщение отладки. Однако первый пример гораздо быстрее при отключении трассировки, так как если mySwitch.TraceError оценивается false, не вызывайте WriteLine(String). Второй пример всегда вызывает WriteLineIf(Boolean, String), даже если mySwitch.TraceErrorfalse и выходные данные трассировки не создаются. Это может привести к ненужным выполнению произвольно сложного кода.

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

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

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

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

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

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

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0