|
在 .NET 類庫(kù)中有一個(gè) System.Diagnostics命名空間,該命名空間提供了一些與系統(tǒng)進(jìn)程、事件日志、和性能計(jì)數(shù)器進(jìn)行交互的類庫(kù)。當(dāng)中包括了兩個(gè)對(duì)開(kāi)發(fā)人員而言十分有用的類Debug類和Trace類。本文介紹了這兩個(gè)類的一些基本用途,旨在提高廣大開(kāi)發(fā)人員的開(kāi)發(fā)效率。
目錄
- 使用Debug類來(lái)幫助調(diào)試
- Debug類和Trace類的區(qū)別
- 使用Trace類來(lái)做程序日志
- 小結(jié)
- 參考資料
使用Debug類來(lái)幫助調(diào)試
調(diào)試程序?qū)γ總€(gè)程序員來(lái)說(shuō)是家常便飯。可是我們會(huì)經(jīng)常遇到一些情況讓我們頭疼,例如:
- 當(dāng)我們?cè)陂_(kāi)發(fā)一個(gè)界面控件的時(shí)候,簡(jiǎn)單的設(shè)斷點(diǎn)會(huì)增加Paint事件的響應(yīng)次數(shù),而造成的環(huán)境參數(shù)改變。
- 斷點(diǎn)設(shè)多了,程序常常停在正常運(yùn)行的地方;這樣一來(lái),調(diào)試一個(gè)錯(cuò)誤要花費(fèi)大量時(shí)間去尋找錯(cuò)誤。
這時(shí),我們就需要利用System.Diagnostics.Debug類來(lái)幫助我們調(diào)試。我們可以通過(guò)調(diào)用Debug.WriteLine(String message)函數(shù),將我們所關(guān)心的信息打印在Visual StudioIDE的Output窗口中。也可以利用Debug.Assert(bool condition)來(lái)讓程序停在錯(cuò)誤的地方,并且顯示Callstack。
Debug類中所有函數(shù)的調(diào)用都不會(huì)在Release版本里有效。也就是說(shuō),我們通過(guò)這種方法所加的代碼可以僅用于調(diào)試;在發(fā)布的時(shí)候無(wú)需刪任何代碼,就可以給用戶一個(gè)沒(méi)有調(diào)試指令的程序了。
下面的這個(gè)例子演示了這兩個(gè)函數(shù)來(lái)幫助調(diào)試的方法:
1、 新建一個(gè)Visual Studio C# Project,采用默認(rèn)的項(xiàng)目名。
2、 往Form1上拖一個(gè)label,并采用其缺省ID。
3、 在Form1.cs中的Form1類中添加下面的函數(shù)代碼:

private int time=0;protected override void OnPaint(PaintEventArgs e){time++;this.label1.Text="OnPain called "+time.ToString()+" Times.";}protected override void OnResize(EventArgs e){System.Diagnostics.Debug.Assert(this.Width>200,"Width should be larger than 200.");System.Diagnostics.Debug.WriteLine(Size.ToString());}
NET技術(shù):System.Diagnostics命名空間里的Debug類和Trace類的用途【轉(zhuǎn)】,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。