Procedura: aggiungere istruzioni di analisi al codice dell'applicazione

Aggiornamento: novembre 2007

I metodi utilizzati con maggiore frequenza per l'analisi sono i metodi per la scrittura dell'output nei listener, ovvero Write, WriteIf, WriteLine, WriteLineIf, Assert e Fail. Questi metodi possono essere suddivisi in due categorie: Write, WriteLine e Fail generano tutti un output in modo non condizionale, mentre WriteIf, WriteLineIf e Assert verificano una condizione Boolean e la scrittura avviene o meno in base al valore di tale condizione. WriteIf e WriteLineIf generano output se la condizione è true, mentre Assert genera output se la condizione è false.

Quando si progetta la strategia di analisi e di debug è necessario stabilire come si desidera visualizzare l'output. Più istruzioni Write costituite da informazioni non correlate creeranno un log difficile da leggere. D'altra parte, se si utilizza WriteLine per inserire istruzioni correlate in righe separate, potrebbe essere difficile distinguere le informazioni che appartengono allo stesso gruppo. In genere è opportuno utilizzare più istruzioni Write quando si desidera associare informazioni da diverse origini, per creare un singolo messaggio informativo, e l'istruzione WriteLine quando si desidera creare un unico messaggio completo.

Per scrivere una riga completa

  • Chiamare il metodo WriteLine o WriteLineIf.

    Viene inserito un ritorno a capo alla fine del messaggio restituito da questo metodo, in modo che il messaggio successivo restituito da Write, WriteIf, WriteLine o WriteLineIf inizi nella riga successiva:

    Dim errorFlag As Boolean = False
    Trace.WriteLine("Error in AppendData procedure.")
    Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.") 
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    
    boolean errorFlag = false;
    System.Diagnostics.Trace.WriteLine("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    

Per scrivere una riga parziale

  • Chiamare il metodo Write o WriteIf.

    Il messaggio successivo restituito da Write, WriteIf, WriteLine o WriteLineIf inizierà nella stessa riga del messaggio restituito dall'istruzione Write o WriteIf:

    Dim errorFlag As Boolean = False
    Trace.WriteIf(errorFlag, "Error in AppendData procedure.")
    Debug.WriteIf(errorFlag, "Transaction abandoned.")
    Trace.Write("Invalid value for data request")
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, 
       "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
    Trace.Write("Invalid value for data request");
    
    boolean errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
          System.Diagnostics.Trace.Write("Invalid value for data request");
    

Per verificare l'esistenza di determinate condizioni prima o dopo l'esecuzione di un metodo

  • Chiamare il metodo Assert.

    Dim I As Integer = 4
    Trace.Assert(I = 5, "I is not equal to 5.")
    
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    Nota:

    È possibile utilizzare il metodo Assert sia con l'analisi che con il debug. In questo esempio viene restituito lo stack di chiamate a ogni listener nell'insieme Listeners. Per ulteriori informazioni, vedere Asserzioni nel codice gestito e Debug.Assert.

Vedere anche

Attività

Procedura: configurare opzioni di analisi

Concetti

Introduzione alla strumentazione e all'analisi

Opzioni di analisi

Listener di analisi

Riferimenti

Debug.WriteIf

Debug.WriteLineIf

Trace.WriteIf

Trace.WriteLineIf

Altre risorse

Analisi e strumentazione di applicazioni