首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C# 重複代碼重構:提取公共方法消除 if 判斷

     編輯:程式設計疑難解答

問題現狀

兩段幾乎相同的取款邏輯,分別遍歷 userGroup 集合與單個 u 對象,僅變量名不同,導致代碼冗餘。

重構建議

將核心邏輯封裝為獨立方法,參數化差異部分:

private void Withdraw(User user) {
    Console.WriteLine("請輸入賬號");
    string id = Console.ReadLine();
    Console.WriteLine("請輸入密碼");
    string pwd = Console.ReadLine();
    if (id.Equals(user.idC) && pwd.Equals(user.pwd)) {
        Console.WriteLine("請輸入要取得的金額");
        double amount = double.Parse(Console.ReadLine());
        if (amount <= user.banlance && amount != 0) {
            user.banlance -= amount;
            Console.WriteLine("余額:{0}", user.banlance);
        } else {
            Console.WriteLine("金額輸入有誤!");
        }
    } else {
        Console.WriteLine("密碼錯誤!");
        DrawMoney(); // 遞歸或循環
    }
}

// 調用示例
foreach (var user in userGroup) Withdraw(user);
// 或
Withdraw(u);

優勢

  • 消除重複代碼,維護性提升。
  • 無需複雜的 if 判斷區分場景。
  • 便於單元測試與擴展。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved