Debug Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce un set di metodi e proprietà che consentono di eseguire il debug del codice.
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
- Ereditarietà
-
Debug
Esempio
Nell'esempio seguente viene Debug usato per indicare l'inizio e la fine dell'esecuzione di un programma. L'esempio usa Indent anche e Unindent per distinguere l'output di traccia.
// 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
Commenti
Per rendere il codice più affidabile senza influire sulle prestazioni e sulle dimensioni del codice del prodotto di spedizione, usare i metodi nella Debug classe per stampare le informazioni di debug e controllare la logica con le asserzioni.
Questa classe fornisce metodi per visualizzare una Assert finestra di dialogo e generare un'asserzione che avrà sempre esito negativo. Questa classe fornisce metodi di scrittura nelle varianti seguenti:
Le BooleanSwitch classi e TraceSwitch forniscono mezzi per controllare dinamicamente l'output di traccia. Per le app .NET Framework, è possibile modificare i valori di queste opzioni senza ricompilare l'applicazione. Per informazioni sull'uso del file di configurazione per impostare un'opzione nelle app .NET Framework, vedere la Switch classe e l'articolo Opzioni di traccia .
È possibile personalizzare la destinazione dell'output di traccia aggiungendo TraceListener o rimuovendo istanze dalla Listeners raccolta. La raccolta viene condivisa sia dalle classi che DebugTrace dalle classi. L'aggiunta Listeners di un listener di traccia a entrambe le classi aggiunge il listener a entrambi. Per impostazione predefinita, la classe genera l'output DefaultTraceListener di traccia.
Nota
L'aggiunta di un listener di traccia alla Listeners raccolta può causare la generazione di un'eccezione durante la traccia, se una risorsa usata dal listener di traccia non è disponibile. Le condizioni e l'eccezione generata dipendono dal listener di traccia e non possono essere enumerate in questo articolo. Può essere utile inserire chiamate ai Debug metodi in try
/catch
blocchi per rilevare e gestire eventuali eccezioni dai listener di traccia.
È possibile modificare il livello di rientro usando il Indent metodo o la IndentLevel proprietà . Per modificare la spaziatura del rientro, utilizzare la IndentSize proprietà . È possibile specificare se scaricare automaticamente il buffer di output dopo ogni scrittura impostando la AutoFlush proprietà su true
.
Per le app .NET Framework, è possibile impostare AutoFlush e IndentSize per Debug modificando il file di configurazione dell'app. Il file di configurazione deve essere formattato come illustrato nell'esempio seguente.
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="7" />
</system.diagnostics>
</configuration>
L'attributo ConditionalAttribute viene applicato ai metodi di Debug. I compilatori che supportano ignorano ConditionalAttribute le chiamate a questi metodi, a meno che non DEBUG
sia definito come simbolo di compilazione condizionale. Fare riferimento alla documentazione di un compilatore per determinare se ConditionalAttribute è supportato e la sintassi per la definizione di un simbolo di compilazione condizionale.
Nota
Nei progetti Visual Studio C# e Visual Basic, per impostazione predefinita, il DEBUG
simbolo di compilazione condizionale viene definito per le compilazioni di debug e il TRACE
simbolo è definito sia per le compilazioni di debug che per le build di versione. Per informazioni sul debug condizionale in Visual C++, vedere Classe debug (C++/CLI) .
Per definire il DEBUG
simbolo di compilazione condizionale in C#, aggiungere l'opzione /d:DEBUG
alla riga di comando del compilatore quando si compila il codice usando una riga di comando o aggiungere #define DEBUG
all'inizio del file. In Visual Basic aggiungere l'opzione /d:DEBUG=True
alla riga di comando del compilatore o aggiungere #Const DEBUG=True
al file.
Proprietà
AutoFlush |
Ottiene o imposta un valore che indica se chiamare il metodo Flush() sulla proprietà Listeners dopo ogni operazione di scrittura. |
IndentLevel |
Ottiene o imposta il livello di rientro. |
IndentSize |
Ottiene o imposta il numero di spazi in un rientro. |
Listeners |
Ottiene l'insieme di listener che esegue il monitoraggio dell'output di debug. |
Metodi
Assert(Boolean) |
Controlla una condizione. Se la condizione è |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Controlla una condizione. Se la condizione è |
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Controlla una condizione. Se la condizione è |
Assert(Boolean, String) |
Controlla una condizione. Se la condizione è |
Assert(Boolean, String, String) |
Controlla una condizione. Se la condizione è |
Assert(Boolean, String, String, Object[]) |
Controlla una condizione. Se la condizione è |
Close() |
Svuota il buffer dell'output e quindi chiama il metodo |
Fail(String) |
Genera il messaggio di errore specificato. |
Fail(String, String) |
Genera un messaggio di errore e un messaggio di errore dettagliato. |
Flush() |
Svuota il buffer di output e determina la scrittura dei dati del buffer nella raccolta Listeners. |
Indent() |
Incrementa la proprietà IndentLevel corrente di uno. |
Print(String) |
Scrive un messaggio seguito da un terminatore di riga nei listener di traccia nell'insieme Listeners. |
Print(String, Object[]) |
Scrive una stringa formattata seguita da un terminatore di riga nei listener di traccia dell'insieme Listeners. |
Unindent() |
Riduce l'oggetto IndentLevel corrente di uno. |
Write(Object) |
Scrive il valore del metodo ToString() dell'oggetto nei listener di traccia nella raccolta Listeners. |
Write(Object, String) |
Scrive un nome di categoria e il valore del metodo ToString() dell'oggetto nei listener di traccia nella raccolta Listeners. |
Write(String) |
Scrive un messaggio nei listener di traccia della raccolta Listeners. |
Write(String, String) |
Scrive un nome di categoria e un messaggio nei listener di traccia della raccolta Listeners. |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Se |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Scrive un nome di categoria e un messaggio nei listener di traccia nella Listeners raccolta se una condizione specificata è |
WriteIf(Boolean, Object) |
Scrive il valore del metodo ToString() dell'oggetto nei listener di traccia nella raccolta Listeners se una condizione è |
WriteIf(Boolean, Object, String) |
Scrive un nome di categoria e il valore del metodo ToString() dell'oggetto nei listener di traccia nella raccolta Listeners se una condizione è |
WriteIf(Boolean, String) |
Scrive un messaggio ai listener di traccia della raccolta Listeners se una condizione è |
WriteIf(Boolean, String, String) |
Scrive un nome di categoria e un messaggio nei listener di traccia della raccolta Listeners se una condizione è |
WriteLine(Object) |
Scrive il valore del metodo ToString() dell'oggetto nei listener di traccia nella raccolta Listeners. |
WriteLine(Object, String) |
Scrive un nome di categoria e il valore del metodo ToString() dell'oggetto nei listener di traccia nella raccolta Listeners. |
WriteLine(String) |
Scrive un messaggio seguito da un terminatore di riga nei listener di traccia nell'insieme Listeners. |
WriteLine(String, Object[]) |
Scrive un messaggio formattato seguito da un terminatore di riga nei listener di traccia nell'insieme Listeners. |
WriteLine(String, String) |
Scrive un nome di categoria e un messaggio nei listener di traccia della raccolta Listeners. |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Scrive un messaggio nei listener di traccia nella Listeners raccolta se una condizione specificata è |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Scrive un nome di categoria e un messaggio nei listener di traccia nella Listeners raccolta se una condizione specificata è |
WriteLineIf(Boolean, Object) |
Scrive il valore del metodo ToString() dell'oggetto nei listener di traccia nella raccolta Listeners se una condizione è |
WriteLineIf(Boolean, Object, String) |
Scrive un nome di categoria e il valore del metodo ToString() dell'oggetto nei listener di traccia nella raccolta Listeners se una condizione è |
WriteLineIf(Boolean, String) |
Scrive un messaggio ai listener di traccia della raccolta Listeners se una condizione è |
WriteLineIf(Boolean, String, String) |
Scrive un nome di categoria e un messaggio nei listener di traccia della raccolta Listeners se una condizione è |
Si applica a
Thread safety
Questo tipo è thread-safe.