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


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)

Проверка условия; Если условие равно false, выводит указанное сообщение и отображает окно сообщения, отображающее стек вызовов.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Проверка условия; Если условие равно false, выводит указанное сообщение и отображает окно сообщения, отображающее стек вызовов.

Assert(Boolean, String, String, Object[])

Проверка условия; Если условие равно false, выводит два сообщения (простые и отформатированные) и отображает окно сообщения, отображающее стек вызовов.

Assert(Boolean, String, String)

Проверка условия; Если условие равно false, выводит два указанных сообщения и отображает окно сообщения, отображающее стек вызовов.

Assert(Boolean, String)

Проверка условия; Если условие равно false, выводит указанное сообщение и отображает окно сообщения, отображающее стек вызовов.

Assert(Boolean)

Проверка условия; Если условие задано false, отображается окно сообщения, в котором показан стек вызовов.

Close()

Очищает выходной буфер, а затем вызывает Close метод для каждого из них Listeners.

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 коллекции, если указано условие true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

WriteIf(Boolean, Object, String)

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

WriteIf(Boolean, Object)

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

WriteIf(Boolean, String, String)

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

WriteIf(Boolean, String)

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

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 коллекции, если указано условие true.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, Object)

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

WriteLineIf(Boolean, String, String)

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

WriteLineIf(Boolean, String)

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

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

Потокобезопасность

Этот тип является потокобезопасной.

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