HOW TO:將追蹤陳述式加入至應用程式程式碼

最常用的追蹤方法是將輸出寫入接聽程式的方法:WriteWriteIfWriteLineWriteLineIfAssertFail。 這些方法可以區分為兩個分類:WriteWriteLineFail 都會無條件發出輸出,而 WriteIfWriteLineIfAssert 會測試 Boolean 條件,並且依據條件值決定是否要寫入。 WriteIfWriteLineIf 當條件為 true 時發出輸出,而 Assert 當條件為 false 時會發出輸出。

當您設計追蹤和偵錯策略時,請考慮您所想要的輸出外觀。 用無關資訊填滿的多重 Write 陳述式將建立難以閱讀的記錄檔。 另一方面,使用 WriteLine 將相關陳述式放置在不同行,可能會造成難以區別同類資訊。 一般而言,當您想要將來自於多重來源的資訊結合成單一資訊訊息時,請使用多重 Write 陳述式,當您想要建立單一、完整的訊息時請使用 WriteLine 陳述式。

若要寫入完整行

  • 呼叫 WriteLineWriteLineIf 方法。

    在這個方法所傳回的訊息尾端會附加歸位字元 (Carriage Return),使 WriteWriteIfWriteLineWriteLineIf 所傳回的下一個訊息會從下一行開始:

    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.");
    

若要寫入部分行

  • 呼叫 WriteWriteIf 方法。

    WriteWriteIfWriteLineWriteLineIf 所放置的下一個訊息,會在與 WriteWriteIf 陳述式所放置訊息的同一行開始:

    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");
    

若要在執行方法之前或之後確定某些條件是否存在

  • 呼叫 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.");
    
    注意事項注意事項

    您可以配合追踨和偵錯來使用 Assert。這個範例將呼叫堆疊輸出至 Listeners 集合中的任何接聽程式。如需詳細資訊,請參閱 Managed 程式碼中的判斷提示Debug.Assert

請參閱

工作

HOW TO:設定追蹤參數

參考

Debug.WriteIf

Debug.WriteLineIf

Trace.WriteIf

Trace.WriteLineIf

概念

檢測和追蹤的簡介

追蹤參數

追蹤接聽項

其他資源

追蹤和稽核應用程式