demoshop

demo, trying to be the best_

寫code不需要偵錯的是神人,既然我們都還不是神的境界那就一定要了解偵錯的技巧與工具,而第一篇系列文當然就是要來說明撰寫.NET的第一工具Visual Studio囉。

之所以想寫這主題的系列文是因為demo的同事有一位是新手,新手在寫code的時候一定會有很多神奇的Bug,但是看他"想"錯誤的方式實在是很無言,怎麼說呢,新手之所以叫做新手就是觀念不佳,邏輯不清可是當程式錯誤的時候他卻憑空"想"哪裡錯誤,然後猜那個地方需要改,接者就可想而知陷入錯誤的無窮迴圈,不能說他嫩,只能說他不知道小紅點(中斷點)的好用,以下demo就來說明中斷點能幹啥。

 

當我們寫好了code


  1. 		foreach (object item in this.form1.Controls) 
  2. 		
  3. 		    if (item is TextBox) 
  4. 		    { 
  5. 		        count += 1; 
  6. 		    } 
  7. 		

假設我們想要知道count現在的數字是多少我們就可以在count +=1的地方設定中斷點 而熱鍵的中斷點是


設定了中斷點的程式會變成這樣


然後按下就會執行建置&偵錯 黃色的箭頭就表示程式目前中斷在這行,因為此行也同時是我們中斷的第一行所以可以看到中斷點和黃色箭頭重疊。


我們可以看到下方?所指的Locals頁籤在此會自動列出此區域的變數與值很方便的


而我們切換到旁邊的Watch 頁籤會發現怎麼空空的啥都沒有


Watch中文翻為監看式,因為區域變數有時候很多,我們想要只針對幾個需要注意的變數作監看就可以利用監看式,使用方法很簡單,把想要看的變數或程式,反白拖曳到下方Watch區域放開即可。 像本範例就監看了兩個變數和一個屬性


但是如果突然想看某個變數還要拉下來看其實也滿累的所以微軟也想到了,當你把滑鼠停留在某部份就會直接顯示型態與值


如果是有+的點下去後就可以例出更詳細的資訊了


還有一個很重要的偵錯技巧,就是

拿上面的code來說我們的中斷點是下在foreach迴圈內,如果我按下程式就會一行一行的跑下去,當然也就會回到迴圈頂在跑下來,就是完全模擬迴圈的運作,那如果我覺得這迴圈沒問題了,我想看在下來的程式可是迴圈還有100圈沒跑完,難道我們要像白癡一樣按100次嗎?當然不用您可以利用直接跳離這段迴圈繼續看下面的程式,如果程式跑進方法了也可以利用這招直接跳出來繼續執行下去。

 

Visual Studio擁有非常好的偵錯功能,只要活用對於debug上一定大有進步,不要在用想的debug了,善用小紅點吧,最後再說一句,【偵錯是不要錢的,有靈異事件產生就請偵錯吧!!】

回應討論