共用方式為


作法:將追蹤陳述式新增至應用程式程式碼

注意

本文專屬於 .NET Framework。 其不適用於較新的 .NET 實作,包括 .NET 6 和更新版本。

追蹤最常使用的方法就是將輸出寫入接聽程式的方法:WriteWriteIfWriteLineWriteLineIfAssertFail。 這些方法可以分成兩種類別:WriteWriteLineFail 都會無條件地發出輸出,而 WriteIfWriteLineIfAssert 則會測試布林條件,並根據條件的值寫入或不寫入。 如果條件為 trueWriteIfWriteLineIf 會發出輸出,而如果條件為 false,則 Assert 會發出輸出。

設計追蹤和偵錯策略時,應該思考該輸出的內容為何。 若在多個 Write 陳述式中填入不相關的資訊,將會建立一個不易閱讀的記錄檔。 相反地,若使用 WriteLine 將相關的陳述式置於不同行,可能難以區別哪些資訊有所關聯。 一般而言,當您想要將多個來源的資訊結合成單一的告知性訊息時,請使用多個 Write 陳述式,而當您想要建立單一且完整的訊息時,則請使用 WriteLine 陳述式。

若要撰寫完整行

  1. 呼叫 WriteLineWriteLineIf 方法。

    將歸位字元附加到此方法傳回的訊息結尾,讓由 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.");
    

若要寫入部分行

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

若要確認特定條件存在 (不論在執行方法之前或之後)

  1. 呼叫 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

另請參閱