iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
自我挑戰組

C# 和 SQL 探索之路系列 第 21

Day 21: C# 除錯技巧

  • 分享至 

  • xImage
  •  

今天要來介紹的是 C# 除錯的幾個技巧。

以前上課時,只會知道可以下中斷點,以偵錯模式執行程式時會停在該處,讓你可以檢查各個變數。但實際上在 Visual Studio 內,還有進階的用法,增加除錯的效率。

在中斷點內設定條件式

可以在中斷點按下右鍵,選擇「設定條件...」,並輸入結果為布林值的判斷式,例如「i==3」。

https://ithelp.ithome.com.tw/upload/images/20221002/201521546BwSWGb8Ko.png

設定完成後,偵錯時會達到指定條件才進入中斷點。

在 Foreach 下檢查特定的迭代

雖然 Foreach 每次迭代都是一個物件,但是在監看式內可以使用 List.IndexOf() 語法,列出目前迭代項目在原本的列表中的位置,並依此找到發生問題的列表中物件。

Hot Reload

從 Visual Studio 2019 16.11 和 .Net 6 開始,可以使用 Hot Reload 的功能。這個功能可以讓開發者從 Visual Studio 執行程式時,不用重新編譯,只要按下 Hot Reload 的按鈕以後,就會套用程式碼變更,即時顯示效果。

https://ithelp.ithome.com.tw/upload/images/20221002/20152154wI4VEEQWSQ.png

這個功能目前實際使用上,遇到部分如「修改參數方法」、「修改方法名稱」或大量的程式碼變更時,可能會告知無法套用 Hot Reload (顯示紫色底線),但大部分狀況下仍是很實用的功能。

https://ithelp.ithome.com.tw/upload/images/20221002/20152154lqnMuC5szF.png

呼叫堆疊

當程式規模變大,或是對不熟悉的程式除錯時,雖然設了中斷點或跳出例外,但可能無法理解為什麼會進入到這一段程式碼,此時可以用呼叫堆疊視窗,觀察呼叫的方法順序。

https://ithelp.ithome.com.tw/upload/images/20221002/20152154vUJr95WdSs.png

參考資料


上一篇
Day 20: C# 引用第三方程式: 動態載入、反射 (Reflection)
下一篇
Day 22: C# 使用 Region 的優缺點
系列文
C# 和 SQL 探索之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言