2017-05-18 102 views
0

我一直在嘗試通過創建一個允許用戶添加當前或儲蓄帳戶的基本銀行應用程序來學習一些C#。如果它是一個經常賬戶,那麼它將起始餘額乘以0.2,如果它是一個儲蓄,那麼它乘以0.6。當他們添加一個帳戶時,應用程序應該將其保存到列表中,並最終顯示所有帳戶名稱。到目前爲止,我有一個允許用戶添加名爲AddAccount.cs的帳戶的表單。然後,我有一個Account.cs應該設置帳戶,然後AccountList.cs將其添加到列表中。C#檢索數據並將其存儲在列表中

我需要什麼幫助:

  1. 我如何通過新的帳戶信息並設置他們在Account.cs?
  2. 然後如何將賬戶添加到列表中並顯示賬戶的名稱?

Account.cs:

abstract class Account 
    { 
     public string accName, accId, accType; 
     public double balance; 

     public void setValues(string name, string id, double bal, string type) 
     { 
      this.accName = name; 
      this.accId = id; 
      this.balance = bal; 
      this.accType = type; 
     } 
    } 

    class CurrentAccount : Account 
    { 
     public double interst() 
     { 
      return balance * 0.2; 
     } 
    } 

    class SavingsAccount : Account 
    { 
     public double interst() 
     { 
      return balance * 0.6; 
     } 
    } 

AddAccount.cs:

private void btn_AddAccount_Click(object sender, EventArgs e) 
     { 
      string name, id, type; 
      double balance; 

      name = input_AccountName.Text; 
      id = input_AccountNo.Text; 
      balance = Convert.ToDouble(input_StartBalance.Text); 

      if (radio_CurrentAccount.Checked) 
      { 
       type = "C"; 
      } 
      else 
      { 
       type = "S"; 
      } 

      //closes the form when clicked 
      this.Close(); 
     } 

AccountList.cs:

class AccountList 
    { 
     private List<Account> accountlst; 
     public List<Account> AccountLst 
     { 
      get { return accountlst; } 
     } 
    } 

如果我完全錯了,請讓我知道。即使最細微的幫助,將不勝感激。

+1

在AddAccount.cs您提取的輸入,並設置局部變量。當代碼從添加退出點擊你失去了一切,你需要類型賬戶的一類級別的變量,並設置其屬性,那麼你這個帳戶添加到列表中 – Steve

回答

1

那麼假設,如果類型是「C」,那麼你創建型活期賬戶的對象,如果類型爲「S」,那麼你創建一個儲蓄賬戶,將看起來像這樣(的方式我去做到這一點在僞代碼):

if (type is C) 
    Create new CurrentAccount object 
    call setValues(name, id, bal, type) //these are the local variable you created in AddAccount.cs 
    getAccountlst().add(CurrentAccount object you created) //adds to list 
else 
    Create new SavingsAccount object 
    call setValues(name, id, bal, type) 
    getAccountlst().add(SavingsAccount object you created) //adds to list 

順便說2的問題,因爲你從來沒有通過調用new運算符初始化內部AccountList.cs的accountlst對象,它是)設置爲空,所以,當你調用getAccountlst(它將返回一個空對象,如果你嘗試添加它,你會得到一個空指針異常!而pther問題,因爲你的AccountList.cs必須用新的運營商進行初始化,您可以失去你的列表裏面的信息,來解決這個問題,你可以這樣做:

static class AccountList { 

    List<Account> accountList = new List<Account>(); 

    public List<Account> Accountlst { 

     get { 
      return accountList; 
     } 
    } 
} 

我們添加到您的列表中的所有你所要做的就是AccountList.Accountlst.add(Account object here);

+0

謝謝你,這是完美的! :) – TheGarrett

相關問題