Debug Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller en uppsättning metoder och egenskaper som du kan använda för att felsöka koden.
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
- Arv
-
Debug
Exempel
I följande exempel används Debug för att ange början och slutet av ett programs körning. Exemplet använder Indent också och Unindent för att särskilja spårningsutdata.
// 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
Kommentarer
Om du vill göra koden mer robust utan att påverka leveransproduktens prestanda och kodstorlek använder du metoder i Debug klassen för att skriva ut felsökningsinformation och kontrollera logiken med försäkran.
Den här klassen innehåller metoder för att visa en Assert dialogruta och för att generera en försäkran som alltid misslyckas. Den här klassen innehåller skrivmetoder i följande varianter:
Klasserna BooleanSwitch och TraceSwitch ger möjlighet att dynamiskt kontrollera spårningsutdata. För .NET Framework-appar kan du ändra värdena för dessa växlar utan att kompilera om ditt program. Information om hur du använder konfigurationsfilen för att ange en växel i .NET Framework-appar finns i artikeln Switch och Trace Switches.
Du kan anpassa spårningsutdatans mål genom att lägga till TraceListener instanser i eller ta bort instanser från Listeners samlingen. Samlingen Listeners delas av både klasserna Debug och Trace . Om du lägger till en spårningslyssnare i någon av klasserna läggs lyssnaren till i båda. Som standard DefaultTraceListener genererar klassen spårningsutdata.
Note
Om du lägger till en spårningslyssnare i Listeners samlingen kan ett undantag genereras under spårningen, om en resurs som används av spårningslyssnaren inte är tillgänglig. Villkoren och undantaget som genereras beror på spårningslyssnaren och kan inte räknas upp i den här artikeln. Det kan vara användbart att ringa anrop till Debug metoderna i try/catch block för att identifiera och hantera eventuella undantag från spårningslyssnare.
Du kan ändra indragsnivån med hjälp Indent av metoden eller IndentLevel egenskapen . Om du vill ändra indragsavståndet använder du IndentSize egenskapen . Du kan ange om utdatabufferten ska tömmas automatiskt efter varje skrivning genom att ange AutoFlush egenskapen till true.
För .NET Framework-appar kan du ange AutoFlush och IndentSize för Debug genom att redigera appens konfigurationsfil. Konfigurationsfilen ska formateras enligt följande exempel.
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="7" />
</system.diagnostics>
</configuration>
Attributet ConditionalAttribute tillämpas på metoderna Debugför . Kompilatorer som stöder ConditionalAttribute ignorerar anrop till dessa metoder om de inte DEBUG definieras som en villkorsstyrd kompileringssymbol. Se dokumentationen för en kompilator för att avgöra om ConditionalAttribute stöds och syntaxen för att definiera en villkorsstyrd kompileringssymbol.
Note
I Visual Studio C# och Visual Basic projekt definieras som standard symbolen DEBUG villkorlig kompilering för felsökningsversioner, och symbolen TRACE definieras för både felsöknings- och versionsversioner. Information om villkorsstyrd felsökning i Visual C++finns i Felsökningsklass (C++/CLI).
Om du vill definiera symbolen DEBUG för villkorsstyrd kompilering i C# lägger du till /d:DEBUG alternativet på kommandoraden för kompilatorn när du kompilerar koden med hjälp av en kommandorad eller lägger till #define DEBUG överst i filen. I Visual Basic lägger du till alternativet /d:DEBUG=True på kommandoraden för kompilatorn eller lägger till #Const DEBUG=True i filen.
Egenskaper
| Name | Description |
|---|---|
| AutoFlush |
Hämtar eller anger ett värde som anger om Flush() ska anropas efter Listeners varje skrivning. |
| IndentLevel |
Hämtar eller anger indragsnivån. |
| IndentSize |
Hämtar eller anger antalet blanksteg i ett indrag. |
| Listeners |
Hämtar den samling lyssnare som övervakar felsökningsutdata. |
Metoder
| Name | Description |
|---|---|
| Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Söker efter ett villkor. om villkoret är |
| Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Söker efter ett villkor. om villkoret är |
| Assert(Boolean, String, String, Object[]) |
Söker efter ett villkor. om villkoret är |
| Assert(Boolean, String, String) |
Söker efter ett villkor. om villkoret är |
| Assert(Boolean, String) |
Söker efter ett villkor. om villkoret är |
| Assert(Boolean) |
Söker efter ett villkor. om villkoret är |
| Close() |
Tömer utdatabufferten och anropar |
| Fail(String, String) |
Genererar ett felmeddelande och ett detaljerat felmeddelande. |
| Fail(String) |
Genererar det angivna felmeddelandet. |
| Flush() |
Rensar utdatabufferten och gör att buffrade data skrivs Listeners till samlingen. |
| Indent() |
Ökar strömmen IndentLevel med en. |
| Print(String, Object[]) |
Skriver en formaterad sträng följt av en radavgränsare till spårningslyssnare i Listeners samlingen. |
| Print(String) |
Skriver ett meddelande följt av en radavgränsare till spårningslyssnare Listeners i samlingen. |
| Unindent() |
Minskar strömmen IndentLevel med en. |
| Write(Object, String) |
Skriver ett kategorinamn och värdet för objektets metod till spårningslyssnare ToString() i Listeners samlingen. |
| Write(Object) |
Skriver värdet för objektets -metod till spårningslyssnare ToString() i Listeners samlingen. |
| Write(String, String) |
Skriver ett kategorinamn och ett meddelande till spårningslyssnare i Listeners samlingen. |
| Write(String) |
Skriver ett meddelande till spårningslyssnare i Listeners samlingen. |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Skriver ett kategorinamn och ett meddelande till spårningslyssnare Listeners i samlingen om ett angivet villkor är |
| WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Om |
| WriteIf(Boolean, Object, String) |
Skriver ett kategorinamn och värdet för objektets metod till spårningslyssnare ToString() i Listeners samlingen om ett villkor är |
| WriteIf(Boolean, Object) |
Skriver värdet för objektets -metod till spårningslyssnare ToString() i Listeners samlingen om ett villkor är |
| WriteIf(Boolean, String, String) |
Skriver ett kategorinamn och ett meddelande till spårningslyssnare Listeners i samlingen om ett villkor är |
| WriteIf(Boolean, String) |
Skriver ett meddelande till spårningslyssnare Listeners i samlingen om ett villkor är |
| WriteLine(Object, String) |
Skriver ett kategorinamn och värdet för objektets metod till spårningslyssnare ToString() i Listeners samlingen. |
| WriteLine(Object) |
Skriver värdet för objektets -metod till spårningslyssnare ToString() i Listeners samlingen. |
| WriteLine(String, Object[]) |
Skriver ett formaterat meddelande följt av en radavgränsare till spårningslyssnare i Listeners samlingen. |
| WriteLine(String, String) |
Skriver ett kategorinamn och ett meddelande till spårningslyssnare i Listeners samlingen. |
| WriteLine(String) |
Skriver ett meddelande följt av en radavgränsare till spårningslyssnare Listeners i samlingen. |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Skriver ett kategorinamn och ett meddelande till spårningslyssnare Listeners i samlingen om ett angivet villkor är |
| WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Skriver ett meddelande till spårningslyssnare Listeners i samlingen om ett angivet villkor är |
| WriteLineIf(Boolean, Object, String) |
Skriver ett kategorinamn och värdet för objektets metod till spårningslyssnare ToString() i Listeners samlingen om ett villkor är |
| WriteLineIf(Boolean, Object) |
Skriver värdet för objektets -metod till spårningslyssnare ToString() i Listeners samlingen om ett villkor är |
| WriteLineIf(Boolean, String, String) |
Skriver ett kategorinamn och ett meddelande till spårningslyssnare Listeners i samlingen om ett villkor är |
| WriteLineIf(Boolean, String) |
Skriver ett meddelande till spårningslyssnare Listeners i samlingen om ett villkor är |
Gäller för
Trådsäkerhet
Den här typen är trådsäker.