Fornisce un insieme di metodi e di proprietà che consentono di eseguire il debug del codice. La classe non può essere ereditata.
System.Diagnostics.Debug
Spazio dei nomi: System.Diagnostics
Assembly: System (in System.dll)
Public NotInheritable Class Debug
public static class Debug
public ref class Debug abstract sealed
[<AbstractClass>] [<Sealed>] type Debug = class end
Il tipo Debug espone i seguenti membri.
| Nome | Descrizione | |
|---|---|---|
|
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. |
| Nome | Descrizione | |
|---|---|---|
|
Assert(Boolean) | Controlla una condizione. Se la condizione è false, viene visualizzata una finestra di messaggio contenente lo stack di chiamate. |
|
Assert(Boolean, String) | Controlla una condizione. Se la condizione è false, viene generato un messaggio specificato e viene visualizzata una finestra di messaggio contenente lo stack di chiamate. |
|
Assert(Boolean, String, String) | Controlla una condizione. Se la condizione è false, vengono generati due messaggi specificati e viene visualizzata una finestra di messaggio contenente lo stack di chiamate. |
|
Assert(Boolean, String, String, Object[]) | Controlla una condizione. Se la condizione è false, vengono generati due messaggi (semplice e formattato) e viene visualizzata una finestra di messaggio contenente lo stack di chiamate. |
|
Close | Svuota il buffer dell'output e quindi chiama il metodo Close per ogni Listeners. |
|
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 nell'insieme 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 | Decrementa la proprietà IndentLevel corrente di uno. |
|
Write(Object) | Scrive il valore del metodo ToString dell'oggetto nei listener di traccia dell'insieme Listeners. |
|
Write(String) | Scrive un messaggio nei listener di traccia dell'insieme Listeners. |
|
Write(Object, String) | Scrive il nome di una categoria e il valore del metodo ToString dell'oggetto nei listener di traccia dell'insieme Listeners. |
|
Write(String, String) | Scrive un nome di categoria e un messaggio nei listener di traccia dell'insieme Listeners. |
|
WriteIf(Boolean, Object) | Scrive il valore del metodo ToString dell'oggetto nei listener di traccia nell'insieme Listeners se una condizione è true. |
|
WriteIf(Boolean, String) | Scrive un messaggio nei listener di traccia nell'insieme Listeners se una condizione è true. |
|
WriteIf(Boolean, Object, String) | Scrive il nome di una categoria e il valore del metodo ToString dell'oggetto nei listener di traccia nell'insieme Listeners se una condizione è true. |
|
WriteIf(Boolean, String, String) | Scrive il nome di una categoria e un messaggio nei listener di traccia nell'insieme Listeners se una condizione è true. |
|
WriteLine(Object) | Scrive il valore del metodo ToString dell'oggetto nei listener di traccia dell'insieme Listeners. |
|
WriteLine(String) | Scrive un messaggio seguito da un terminatore di riga nei listener di traccia nell'insieme Listeners. |
|
WriteLine(Object, String) | Scrive il nome di una categoria e il valore del metodo ToString dell'oggetto nei listener di traccia dell'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 dell'insieme Listeners. |
|
WriteLineIf(Boolean, Object) | Scrive il valore del metodo ToString dell'oggetto nei listener di traccia nell'insieme Listeners se una condizione è true. |
|
WriteLineIf(Boolean, String) | Scrive un messaggio nei listener di traccia nell'insieme Listeners se una condizione è true. |
|
WriteLineIf(Boolean, Object, String) | Scrive il nome di una categoria e il valore del metodo ToString dell'oggetto nei listener di traccia nell'insieme Listeners se una condizione è true. |
|
WriteLineIf(Boolean, String, String) | Scrive un nome di categoria e un messaggio nei listener di traccia dell'insieme Listeners se una condizione è true. |
Se si utilizzano i metodi nella classe Debug per visualizzare informazioni di debug e procedere a una verifica della logica tramite asserzioni, sarà possibile migliorare l'efficienza del codice senza conseguenze per le prestazioni e per le dimensioni del codice del prodotto rilasciato.
Questa classe fornisce i metodi per la visualizzazione di una finestra di dialogo Assert e la generazione di un'asserzione che avrà sempre esito negativo. Questa classe fornisce metodi di scrittura nelle seguenti variazioni: Write, WriteLine, WriteIf e WriteLineIf.
Le classi BooleanSwitch e TraceSwitch consentono di controllare dinamicamente l'output di tracciatura. È possibile modificare i valori di queste opzioni senza ricompilare l'applicazione. Per informazioni sull'utilizzo del file di configurazione per impostare un'opzione, vedere la classe Switch e l'argomento Opzioni di traccia.
È possibile personalizzare la destinazione dell'output di tracciatura aggiungendo istanze di TraceListener o rimuovendole dall'insieme Listeners. L'insieme Listeners è condiviso sia dalla classe Debug che dalla classe Trace; l'aggiunta di un listener di traccia a una delle due classi aggiunge il listener a entrambe. Per impostazione predefinita, la classe DefaultTraceListener genera output di traccia.
Nota
|
|---|
|
L'aggiunta di un listener di traccia all'insieme Listeners può causare la generazione di un'eccezione durante la traccia, se una risorsa utilizzata dal listener di traccia non è disponibile. Le condizioni e l'eccezione generate dipendono dal listener di traccia e non possono essere enumerate in questo argomento. Potrebbe essere utile effettuare chiamate ai metodi Debug in blocchi try/catch per rilevare e gestire qualsiasi eccezione dai listener di traccia. |
È possibile modificare il livello di rientro utilizzando il metodo Indent o la proprietà IndentLevel. Per modificare il numero di rientro, utilizzare la proprietà IndentSize. È possibile specificare se svuotare automaticamente il buffer di output dopo ogni operazione di scrittura impostando la proprietà AutoFlush su true.
Per impostare le proprietà AutoFlush e IndentSize per Debug, è possibile modificare il file di configurazione che corrisponde al nome dell'applicazione. Il file di configurazione deve essere formattato come mostrato nell'esempio seguente.
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="7" />
</system.diagnostics>
</configuration>
L'attributo ConditionalAttribute viene applicato ai metodi della classe Debug. I compilatori che supportano l'attributo ConditionalAttribute ignorano le chiamate a questi metodi a meno che "DEBUG" non sia definito come simbolo di compilazione condizionale. Fare riferimento alla documentazione di un compilatore per determinare se l'attributo ConditionalAttribute è supportato e verificare la sintassi per la definizione di un simbolo di compilazione condizionale.
Nota
|
|---|
|
Per impostazione predefinita, in progetti Visual Studio C# e Visual Basic il simbolo di compilazione condizionale "DEBUG" è definito per le build di debug, mentre il simbolo "TRACE" per le build di debug e di rilascio. Per informazioni sulla disabilitazione di questo comportamento, vedere la documentazione di Visual Studio. Per informazioni sul debug condizionale in Visual C++, vedere Classe Debug (C++/CLI). |
Per definire il simbolo di compilazione condizionale "DEBUG" in C#, aggiungere l'opzione /d:DEBUG alla riga di comando del compilatore durante la compilazione del codice mediante una riga di comando oppure 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.
Nell'esempio che segue viene utilizzato Debug per indicare l'inizio e la fine dell'esecuzione di un programma Vengono inoltre utilizzati i metodi Indent e Unindent per distinguere l'output di tracciatura.
' Specify /d:DEBUG=True when compiling. Imports System 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
// 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 /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; }
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supportato in: 4, 3.5 SP1Supportato in:
Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Questo tipo è thread-safe.
Riferimenti
|
Data |
Cronologia |
Motivo |
|---|---|---|
|
Maggio 2011 |
Informazioni sull'utilizzo dell'attributo condizionale "DEBUG" aggiornate. |
Commenti e suggerimenti dei clienti. |
Nota