作法:將追蹤陳述式新增至應用程式程式碼
注意
本文專屬於 .NET Framework。 其不適用於較新的 .NET 實作,包括 .NET 6 和更新版本。
追蹤最常使用的方法就是將輸出寫入接聽程式的方法:Write、WriteIf、WriteLine、WriteLineIf、Assert 和 Fail。 這些方法可以分成兩種類別:Write、WriteLine 與 Fail 都會無條件地發出輸出,而 WriteIf、WriteLineIf 與 Assert 則會測試布林條件,並根據條件的值寫入或不寫入。 如果條件為 true
,WriteIf 與 WriteLineIf 會發出輸出,而如果條件為 false
,則 Assert 會發出輸出。
設計追蹤和偵錯策略時,應該思考該輸出的內容為何。 若在多個 Write 陳述式中填入不相關的資訊,將會建立一個不易閱讀的記錄檔。 相反地,若使用 WriteLine 將相關的陳述式置於不同行,可能難以區別哪些資訊有所關聯。 一般而言,當您想要將多個來源的資訊結合成單一的告知性訊息時,請使用多個 Write 陳述式,而當您想要建立單一且完整的訊息時,則請使用 WriteLine 陳述式。
若要撰寫完整行
呼叫 WriteLine 或 WriteLineIf 方法。
將歸位字元附加到此方法傳回的訊息結尾,讓由 Write、WriteIf、WriteLine 或 WriteLineIf 傳回的下一個訊息,從下行開始:
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.");
若要寫入部分行
-
由 Write、WriteIf、WriteLine 或 WriteLineIf 放出的下一個訊息,將會以 Write 或 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");
若要確認特定條件存在 (不論在執行方法之前或之後)
呼叫 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。