今天要來介紹的是 C# 除錯的幾個技巧。
以前上課時,只會知道可以下中斷點,以偵錯模式執行程式時會停在該處,讓你可以檢查各個變數。但實際上在 Visual Studio 內,還有進階的用法,增加除錯的效率。
可以在中斷點按下右鍵,選擇「設定條件...」,並輸入結果為布林值的判斷式,例如「i==3
」。
設定完成後,偵錯時會達到指定條件才進入中斷點。
雖然 Foreach 每次迭代都是一個物件,但是在監看式內可以使用 List.IndexOf()
語法,列出目前迭代項目在原本的列表中的位置,並依此找到發生問題的列表中物件。
從 Visual Studio 2019 16.11 和 .Net 6 開始,可以使用 Hot Reload 的功能。這個功能可以讓開發者從 Visual Studio 執行程式時,不用重新編譯,只要按下 Hot Reload 的按鈕以後,就會套用程式碼變更,即時顯示效果。
這個功能目前實際使用上,遇到部分如「修改參數方法」、「修改方法名稱」或大量的程式碼變更時,可能會告知無法套用 Hot Reload (顯示紫色底線),但大部分狀況下仍是很實用的功能。
當程式規模變大,或是對不熟悉的程式除錯時,雖然設了中斷點或跳出例外,但可能無法理解為什麼會進入到這一段程式碼,此時可以用呼叫堆疊視窗,觀察呼叫的方法順序。