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 /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 окна и выдачи утверждения, которое всегда завершится ошибкой. Этот класс предоставляет методы записи в следующих вариантах:
TraceSwitch Классы BooleanSwitch предоставляют средства динамического управления выходными данными трассировки. Для приложений .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, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Проверка условия; Если условие равно |
| Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Проверка условия; Если условие равно |
| Assert(Boolean, String, String, Object[]) |
Проверка условия; Если условие равно |
| Assert(Boolean, String, String) |
Проверка условия; Если условие равно |
| Assert(Boolean, String) |
Проверка условия; Если условие равно |
| Assert(Boolean) |
Проверка условия; Если условие задано |
| Close() |
Очищает выходной буфер, а затем вызывает |
| Fail(String, String) |
Выдает сообщение об ошибке и подробное сообщение об ошибке. |
| Fail(String) |
Выдает указанное сообщение об ошибке. |
| Flush() |
Очищает выходной буфер и приводит к записи буферных данных в коллекцию Listeners . |
| Indent() |
Увеличивает текущий IndentLevel на один. |
| Print(String, Object[]) |
Записывает форматированную строку, за которой следует терминатор строки в прослушиватели трассировки в Listeners коллекции. |
| Print(String) |
Записывает сообщение, за которым следует конца строки, в прослушиватели трассировки в Listeners коллекции. |
| Unindent() |
Уменьшает текущий IndentLevel на один. |
| Write(Object, String) |
Записывает имя категории и значение метода объекта ToString() в прослушиватели трассировки в Listeners коллекции. |
| Write(Object) |
Записывает значение метода объекта ToString() в прослушиватели трассировки в Listeners коллекции. |
| Write(String, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в Listeners коллекции. |
| Write(String) |
Записывает сообщение в прослушиватели трассировки в Listeners коллекции. |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Записывает имя категории и сообщение прослушивателям трассировки в Listeners коллекции, если указано условие |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Если |
| WriteIf(Boolean, Object, String) |
Записывает имя категории и значение метода объекта ToString() в прослушиватели трассировки в коллекции, Listeners если условие равно |
| WriteIf(Boolean, Object) |
Записывает значение метода объекта ToString() в прослушиватели трассировки в Listeners коллекции, если условие . |
| WriteIf(Boolean, String, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в Listeners коллекции, если условие. |
| WriteIf(Boolean, String) |
Записывает сообщение в прослушиватели трассировки в коллекции, Listeners если условие равно |
| WriteLine(Object, String) |
Записывает имя категории и значение метода объекта ToString() в прослушиватели трассировки в Listeners коллекции. |
| WriteLine(Object) |
Записывает значение метода объекта ToString() в прослушиватели трассировки в Listeners коллекции. |
| WriteLine(String, Object[]) |
Записывает форматируемое сообщение, за которым следует конечный элемент строки, в прослушиватели трассировки в Listeners коллекции. |
| WriteLine(String, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в Listeners коллекции. |
| WriteLine(String) |
Записывает сообщение, за которым следует конца строки, в прослушиватели трассировки в Listeners коллекции. |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Записывает имя категории и сообщение прослушивателям трассировки в Listeners коллекции, если указано условие |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Записывает сообщение в прослушиватели трассировки в коллекции, Listeners если указано условие |
| WriteLineIf(Boolean, Object, String) |
Записывает имя категории и значение метода объекта ToString() в прослушиватели трассировки в коллекции, Listeners если условие равно |
| WriteLineIf(Boolean, Object) |
Записывает значение метода объекта ToString() в прослушиватели трассировки в Listeners коллекции, если условие . |
| WriteLineIf(Boolean, String, String) |
Записывает имя категории и сообщение в прослушиватели трассировки в Listeners коллекции, если условие. |
| WriteLineIf(Boolean, String) |
Записывает сообщение в прослушиватели трассировки в коллекции, Listeners если условие равно |
Применяется к
Потокобезопасность
Этот тип является потокобезопасной.