Dot-Net
跟踪和調試語句
我對如何使用 .NET Trace 和 Debug 類有點困惑。
您為什麼要費心使用 Trace 而不是 Debug?
Trace.TraceError() Trace.TraceInformation() Trace.Assert() Debug.WriteLine() Debug.Assert()另外,我知道當您處於發布配置模式時,調試語句會被忽略,但是如果跟踪語句一直適用,這對性能有何影響?
在最簡單的層面上,它們有不同的編譯開關——即
Debug.WriteLine只有當你有編譯符號時才會切換等DEBUG(對於發布版本來說並不常見),Trace.WriteLine即使在發布版本中通常也會包含其中的內容。該
Trace路由具有可定制的跟踪偵聽器,可以通過配置進行探測;Debug通常作為偵聽器進入調試器。當然,還有 3rd-party 跟踪系統可以提供更大的靈活性。
您可以使用編譯器開關獨立打開和關閉,如果您轉到項目屬性的建構頁面,那裡有一些複選框。
對我來說,經驗法則是我使用 debug 來獲取實際的調試資訊,即此時變數 x 的值是……等等,Trace 用於跟踪通過我的應用程序的控制流(更像是垃圾郵件)。