Debug Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia zestaw metod i właściwości, które ułatwiają debugowanie kodu.
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
- Dziedziczenie
-
Debug
Przykłady
W poniższym przykładzie użyto Debug metody , aby wskazać początek i koniec wykonywania programu. W przykładzie użyto Indent również funkcji i Unindent do odróżnienia danych wyjściowych śledzenia.
// 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
Uwagi
Aby zwiększyć niezawodność kodu bez wpływu na wydajność i rozmiar kodu produktu wysyłkowego, użyj metod w Debug klasie, aby wydrukować informacje debugowania i sprawdzić logikę przy użyciu asercji.
Ta klasa udostępnia metody wyświetlania okna dialogowego Assert i emitowania potwierdzenia, które zawsze zakończy się niepowodzeniem. Ta klasa udostępnia metody zapisu w następujących odmianach:
Klasy BooleanSwitch i TraceSwitch zapewniają metody dynamicznego kontrolowania danych wyjściowych śledzenia. W przypadku aplikacji .NET Framework można modyfikować wartości tych przełączników bez ponownego komkompilowania aplikacji. Aby uzyskać informacje na temat używania pliku konfiguracji do ustawiania przełącznika w aplikacjach .NET Framework, zobacz Switch klasę i artykuł Trace Switchs (Przełączniki śledzenia ).
Element docelowy śledzenia można dostosować, dodając TraceListener wystąpienia do kolekcji lub usuwając je.Listeners Kolekcja Listeners jest współużytkowany przez klasy Debug i Trace ; dodanie odbiornika śledzenia do jednej z klas dodaje odbiornik do obu tych klas. Domyślnie DefaultTraceListener klasa emituje dane wyjściowe śledzenia.
Uwaga / Notatka
Dodanie odbiornika śledzenia do Listeners kolekcji może spowodować zgłoszenie wyjątku podczas śledzenia, jeśli zasób używany przez odbiornik śledzenia jest niedostępny. Warunki i zgłoszony wyjątek zależą od odbiornika śledzenia i nie można go wyliczyć w tym artykule. Może być przydatne umieszczenie wywołań do Debug metod w blokach w try/catch celu wykrywania i obsługi wyjątków od odbiorników śledzenia.
Poziom wcięcia można zmodyfikować przy użyciu Indent metody lub IndentLevel właściwości . Aby zmodyfikować odstępy między wcięciami, użyj IndentSize właściwości . Możesz określić, czy automatycznie opróżnić bufor wyjściowy po każdym zapisie, ustawiając AutoFlush właściwość na truewartość .
W przypadku aplikacji .NET Framework można ustawić AutoFlush parametr i IndentSize , Debug edytując plik konfiguracji aplikacji. Plik konfiguracji powinien być sformatowany, jak pokazano w poniższym przykładzie.
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="7" />
</system.diagnostics>
</configuration>
Atrybut ConditionalAttribute jest stosowany do metod Debug. Kompilatory, które obsługują ConditionalAttribute ignorowanie wywołań do tych metod, chyba że DEBUG jest zdefiniowany jako symbol kompilacji warunkowej. Zapoznaj się z dokumentacją kompilatora, aby określić, czy ConditionalAttribute jest obsługiwana, oraz składnia definiowania symbolu kompilacji warunkowej.
Uwaga / Notatka
W projektach Visual Studio C# i Visual Basic domyślnie DEBUG symbol kompilacji warunkowej jest definiowany dla kompilacji debugowania, a TRACE symbol jest definiowany zarówno dla kompilacji debugowania, jak i kompilacji wydania. Aby uzyskać informacje na temat debugowania warunkowego w języku Visual C++, zobacz Debug class (C++/CLI).
Aby zdefiniować DEBUG symbol kompilacji warunkowej w języku C#, dodaj /d:DEBUG opcję do wiersza polecenia kompilatora podczas kompilowania kodu przy użyciu wiersza polecenia lub dodaj #define DEBUG go na początku pliku. W języku Visual Basic dodaj /d:DEBUG=True opcję do wiersza polecenia kompilatora lub dodaj #Const DEBUG=True go do pliku.
Właściwości
| Nazwa | Opis |
|---|---|
| AutoFlush |
Pobiera lub ustawia wartość wskazującą, czy Flush() należy wywołać element Listeners po każdym zapisie. |
| IndentLevel |
Pobiera lub ustawia poziom wcięcia. |
| IndentSize |
Pobiera lub ustawia liczbę spacji w wcięcie. |
| Listeners |
Pobiera kolekcję odbiorników monitorujących dane wyjściowe debugowania. |
Metody
| Nazwa | Opis |
|---|---|
| Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Sprawdza warunek; Jeśli warunek to |
| Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Sprawdza warunek; Jeśli warunek to |
| Assert(Boolean, String, String, Object[]) |
Sprawdza warunek; Jeśli warunek to |
| Assert(Boolean, String, String) |
Sprawdza warunek; Jeśli warunek to |
| Assert(Boolean, String) |
Sprawdza warunek; Jeśli warunek to |
| Assert(Boolean) |
Sprawdza warunek; jeśli warunek to |
| Close() |
Opróżnia bufor wyjściowy, a następnie wywołuje metodę |
| Fail(String, String) |
Emituje komunikat o błędzie i szczegółowy komunikat o błędzie. |
| Fail(String) |
Emituje określony komunikat o błędzie. |
| Flush() |
Opróżnia bufor wyjściowy i powoduje buforowane dane do zapisu w kolekcji Listeners . |
| Indent() |
Zwiększa prąd IndentLevel o jeden. |
| Print(String, Object[]) |
Zapisuje sformatowany ciąg, po którym następuje terminator wierszy do odbiorników śledzenia w Listeners kolekcji. |
| Print(String) |
Zapisuje komunikat, po którym następuje terminator wiersza do odbiorników śledzenia w Listeners kolekcji. |
| Unindent() |
Zmniejsza bieżącą liczbę IndentLevel o jedną. |
| Write(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji. |
| Write(Object) |
Zapisuje wartość metody obiektu ToString() dla odbiorników śledzenia w kolekcji Listeners . |
| Write(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners . |
| Write(String) |
Zapisuje komunikat do odbiorników śledzenia w kolekcji Listeners . |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli określony warunek to |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Jeśli |
| WriteIf(Boolean, Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteIf(Boolean, Object) |
Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteIf(Boolean, String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteIf(Boolean, String) |
Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteLine(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji. |
| WriteLine(Object) |
Zapisuje wartość metody obiektu ToString() dla odbiorników śledzenia w kolekcji Listeners . |
| WriteLine(String, Object[]) |
Zapisuje sformatowany komunikat, po którym następuje terminator wierszy do odbiorników śledzenia w Listeners kolekcji. |
| WriteLine(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners . |
| WriteLine(String) |
Zapisuje komunikat, po którym następuje terminator wiersza do odbiorników śledzenia w Listeners kolekcji. |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli określony warunek to |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli określony warunek to |
| WriteLineIf(Boolean, Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteLineIf(Boolean, Object) |
Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteLineIf(Boolean, String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteLineIf(Boolean, String) |
Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
Dotyczy
Bezpieczeństwo wątkowe
Ten typ jest bezpieczny wątkiem.