Debug Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет набор методов и свойств, помогающих при отладке кода.
public ref class Debug abstract sealed
public ref class Debug sealed
public static class Debug
public sealed class Debug
type Debug = class
Public Class Debug
Public NotInheritable Class Debug
- Наследование
-
Debug
Примеры
В следующем примере используется Debug для указания начала и окончания выполнения программы. В примере также используется Indent и Unindent для различения выходных данных трассировки.
// Specify /DDEBUG when compiling.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
int main( void )
{
#if defined(DEBUG)
Debug::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
Debug::AutoFlush = true;
Debug::Indent();
Debug::WriteLine( "Entering Main" );
#endif
Console::WriteLine( "Hello World." );
#if defined(DEBUG)
Debug::WriteLine( "Exiting Main" );
Debug::Unindent();
#endif
return 0;
}
// Specify /d:DEBUG when compiling.
using System;
using System.Data;
using System.Diagnostics;
class Test
{
static void Main()
{
Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
Debug.AutoFlush = true;
Debug.Indent();
Debug.WriteLine("Entering Main");
Console.WriteLine("Hello World.");
Debug.WriteLine("Exiting Main");
Debug.Unindent();
}
}
' Specify /d:DEBUG=True when compiling.
Imports System.Data
Imports System.Diagnostics
Class Test
Shared Sub Main()
Debug.Listeners.Add(New TextWriterTraceListener(Console.Out))
Debug.AutoFlush = True
Debug.Indent()
Debug.WriteLine("Entering Main")
Console.WriteLine("Hello World.")
Debug.WriteLine("Exiting Main")
Debug.Unindent()
End Sub
End Class
Комментарии
Чтобы сделать код более надежным, не влияя на производительность и размер продукта доставки, используйте методы в Debug классе для печати отладочные сведения и проверка логику с утверждениями.
Этот класс предоставляет методы для отображения диалогового Assert окна и для создания утверждения, которое всегда будет завершать ошибку. Этот класс предоставляет методы записи в следующих вариантах:
BooleanSwitch Классы и TraceSwitch предоставляют средства для динамического управления выходными данными трассировки. Для платформа .NET Framework приложений можно изменять значения этих параметров без перекомпиляции приложения. Сведения об использовании файла конфигурации для настройки коммутатора в платформа .NET Framework приложениях смSwitch. в разделе Класс и статью Параметры трассировки.
Вы можете настроить целевой объект вывода трассировки, добавив TraceListener экземпляры в коллекцию или удалив их из Listeners коллекции. Коллекция Listeners совместно используется как классами , Debug так и Trace классами ; добавление прослушивателя трассировки в любой класс добавляет прослушиватель к обоим классам. По умолчанию DefaultTraceListener класс выдает выходные данные трассировки.
Примечание
Добавление прослушивателя трассировки в коллекцию Listeners может привести к возникновению исключения при трассировке, если ресурс, используемый прослушивателем трассировки, недоступен. Условия и возникающее исключение зависят от прослушивателя трассировки и не могут быть перечислены в этой статье. Может быть полезно разместить вызовы Debug методов в try/catch блоках для обнаружения и обработки исключений из прослушивателей трассировки.
Уровень отступа можно изменить с помощью Indent метода или IndentLevel свойства . Чтобы изменить интервал отступов, используйте IndentSize свойство . Можно указать, следует ли автоматически очищать выходной буфер после каждой записи, задав свойству AutoFlush значение true.
Для платформа .NET Framework приложений можно задать AutoFlush и IndentSize дляDebug, изменив файл конфигурации приложения. Файл конфигурации должен быть отформатирован, как показано в следующем примере.
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="7" />
</system.diagnostics>
</configuration>
Атрибут ConditionalAttribute применяется к методам .Debug Компиляторы, поддерживающие ConditionalAttribute , игнорируют вызовы этих методов, если DEBUG не определен как символ условной компиляции. Сведения о поддержке и синтаксисе для определения символа условной компиляции см. в документации ConditionalAttribute компилятора.
Примечание
В проектах Visual Studio C# и Visual Basic по умолчанию символ условной DEBUG компиляции определяется для отладочных сборок, а TRACE символ — для сборок отладки и выпуска. Сведения об условной отладке в Visual C++ см. в разделе Класс отладки (C++/CLI).
Чтобы определить символ условной DEBUG компиляции в C#, добавьте /d:DEBUG параметр в командную строку компилятора при компиляции кода с помощью командной строки или добавьте #define DEBUG в начало файла. В Visual Basic добавьте параметр в /d:DEBUG=True командную строку компилятора или в #Const DEBUG=True файл .
Свойства
| AutoFlush |
Получает или задает значение, определяющее необходимость вызова метода Flush() для свойства Listeners после каждой записи. |
| IndentLevel |
Возвращает или задает уровень отступа. |
| IndentSize |
Возвращает или задает число пробелов в отступе. |
| Listeners |
Получает коллекцию слушателей, отслеживающих данные отладки. |
Методы
| Assert(Boolean) |
Проверяет условие. Если условие имеет значение |
| Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Проверяет условие. Если условие имеет значение |
| Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Проверяет условие. Если условие имеет значение |
| Assert(Boolean, String) |
Проверяет условие. Если условие имеет значение |
| Assert(Boolean, String, String) |
Проверяет условие. Если условие имеет значение |
| Assert(Boolean, String, String, Object[]) |
Проверяет условие; если условие имеет значение |
| Close() |
Очищает выходной буфер, а затем вызывает метод |
| Fail(String) |
Выдает указанное сообщение об ошибке. |
| Fail(String, String) |
Выдает простое и подробное сообщение об ошибке. |
| Flush() |
Очищает выходной буфер и вызывает запись буферизованных данных в коллекцию Listeners. |
| Indent() |
Увеличивает текущее значение IndentLevel на единицу. |
| Print(String) |
Записывает сообщение, заканчивающееся ограничителем строки, в прослушиватели трассировки в коллекции Listeners. |
| Print(String, Object[]) |
Записывает форматированную строку, заканчивающееся ограничителем строки, в прослушиватели трассировки в коллекции Listeners. |
| Unindent() |
Уменьшает текущее значение IndentLevel на единицу. |
| Write(Object) |
Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners. |
| Write(Object, String) |
Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners. |
| Write(String) |
Записывает сообщение в прослушиватели трассировки в коллекции Listeners. |
| Write(String, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners. |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Если |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в коллекции, Listeners если заданное условие равно |
| WriteIf(Boolean, Object) |
Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если условие — |
| WriteIf(Boolean, Object, String) |
Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если задано условие |
| WriteIf(Boolean, String) |
Записывает сообщение в прослушиватели трассировки в коллекции Listeners, если задано условие |
| WriteIf(Boolean, String, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners, если условие равно |
| WriteLine(Object) |
Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners. |
| WriteLine(Object, String) |
Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners. |
| WriteLine(String) |
Записывает сообщение, заканчивающееся ограничителем строки, в прослушиватели трассировки в коллекции Listeners. |
| WriteLine(String, Object[]) |
Записывает форматированное сообщение, заканчивающееся ограничителем строки, в прослушиватели трассировки в коллекции Listeners. |
| WriteLine(String, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners. |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Записывает сообщение в прослушиватели трассировки в коллекции, Listeners если заданное условие равно |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в коллекции, Listeners если заданное условие равно |
| WriteLineIf(Boolean, Object) |
Записывает значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если условие — |
| WriteLineIf(Boolean, Object, String) |
Записывает имя категории и значение метода ToString() объекта в прослушиватели трассировки в коллекции Listeners, если задано условие |
| WriteLineIf(Boolean, String) |
Записывает сообщение в прослушиватели трассировки в коллекции Listeners, если задано условие |
| WriteLineIf(Boolean, String, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в коллекции Listeners, если условие равно |
Применяется к
Потокобезопасность
Данный тип потокобезопасен.