以「顧問日費率計算器」為例,演示從需求分析到方法編寫、重構、調試的完整工程化流程。
double dailyRate = readDouble("Enter your daily rate: ");
int noOfDays = readInt("Enter the number of days: ");
writeFee(calculateFee(dailyRate, noOfDays));
四個核心方法職責劃分:
readDouble:讀取雙精度輸入readInt:讀取整數輸入calculateFee:業務邏輯計算(日費率 × 天數)writeFee:格式化輸出(含 10% 稅費)NotImplementedException 的骨架// 生成前調用
readDouble("Enter your daily rate: ");
// 自動生成存根
private double readDouble(string p) {
throw new Exception("The method or operation is not implemented.");
}
// 手工填充實現
private double readDouble(string p) {
Console.Write(p);
string line = Console.ReadLine();
return double.Parse(line);
}
| 操作 | 快捷鍵 | 行為 | 適用場景 |
|---|---|---|---|
| 逐語句 | F11 | 進入被調用方法內部 | 深入診斷方法內部邏輯 |
| 逐過程 | F10 | 執行當前行,不進入方法 | 跳過已驗證/無關方法 |
| 跳出 | Shift+F11 | 執行完當前方法返回調用處 | 快速退出遞歸/深層調用 |
| 運行到光標 | Ctrl+F10 | 直接執行到指定行 | 快速定位斷點前代碼 |
| 繼續 | F5 | 自由運行至下一斷點/結束 | 結束調試會話 |
run 首行readDouble,觀察 Console.Write 提示輸出ReadLine,控制台獲取焦點等待輸入525,懸停變量 檢視 line="525"run,繼續處理 readInt17,進入 calculateFee 驗證乘法邏輯writeFee 檢視參數 p=8925.0,確認格式化輸出The consultant's fee is: 9817.5null/範圍,拋出 ArgumentExceptionDebug.WriteLine,生產環境自動無效化