首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

C# 方法編寫與調試實戰:從存根生成到逐過程診斷

     編輯:MySQL 資料庫相關知識

Visual Studio 2005 方法開發全流程實戰

以「顧問日費率計算器」為例,演示從需求分析到方法編寫、重構、調試的完整工程化流程。

需求建模與主流程

double dailyRate = readDouble("Enter your daily rate: ");
int noOfDays = readInt("Enter the number of days: ");
writeFee(calculateFee(dailyRate, noOfDays));

四個核心方法職責劃分:

  • readDouble:讀取雙精度輸入
  • readInt:讀取整數輸入
  • calculateFee:業務邏輯計算(日費率 × 天數)
  • writeFee:格式化輸出(含 10% 稅費)

「生成方法存根」向導加速開發

  1. 右鍵調用處 → 生成方法存根(或 Shift+Alt+F10)
  2. VS 自動推斷參數類型、返回類型,生成拋出 NotImplementedException 的骨架
  3. 替換方法體為實際邏輯

生成示例

// 生成前調用
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自由運行至下一斷點/結束結束調試會話

調試會話實戰複盤

  1. 運行到光標 定位到 run 首行
  2. 逐語句 進入 readDouble,觀察 Console.Write 提示輸出
  3. 逐過程 執行 ReadLine,控制台獲取焦點等待輸入
  4. 輸入 525,懸停變量 檢視 line="525"
  5. 跳出 返回 run,繼續處理 readInt
  6. 同理輸入 17,進入 calculateFee 驗證乘法邏輯
  7. 進入 writeFee 檢視參數 p=8925.0,確認格式化輸出
  8. 繼續 結束程序,控制台顯示 The consultant's fee is: 9817.5

代碼重構:提取方法消除重複

  • 選中重複代碼塊 → 重構 → 提取方法
  • 輸入新方法名,VS 自動分析參數/返回值,生成方法並替換調用
  • 提升復用性、可讀性與測試性

工程化最佳實踐

  1. 單一職責:每個方法只做一件事,便於單元測試
  2. 參數驗證:公開方法入口處驗證 null/範圍,拋出 ArgumentException
  3. 異常語義:業務異常用自定義異常類型,系統異常保留堆棧
  4. 調試友好:關鍵路徑添加 Debug.WriteLine,生產環境自動無效化
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved