2016-04-13 5 views
1

私はC#の初心者です。作成しようとしているプログラムに苦労しています。私はこの質問を自分の能力の最大限に発揮できることを願っています。私の割り当てでは、アカウントを作成するWindowsフォームをVisual Basicで作成しています。私の質問のために、Accountクラス、貯蓄勘定科目クラス(Accountクラスから派生したクラス)、私は4つのフォームを持っています。私はAccountFormを持っています(それはアカウント番号とアカウントを表示するメインフォームです量は文字列法を使用します)。私は、現在のAccountBalanceを口座クラス(または預金口座クラス)から取って、推定利息を計算するためにユーザーが入力したレートと期間(InterestFormから収集されたもの)を取る必要がある見積りフォームを持っています。今、私のInterestFormの私のAccountBalanceは0を返しています、なぜ私は分かりません。ここに私のコードはInterestFormです。AccountBalanceへの参照が0の金額を返すのはなぜですか?

namespace Assignment_6_third_attempt 
{ 
    public partial class InterestForm : Form 
    { 

     private SavingsAccount savingsAccount = new SavingsAccount(); 
     //private double accountBalance; 


     public InterestForm() 
     { 
      InitializeComponent(); 
     } 


     public InterestForm(double accountBalance) 
     { 
      accountBalance = savingsAccount.AccountBalance; 
      InitializeComponent(); 
     } 


     private void addInterestButton_Click(object sender, EventArgs e) 
     { 
      CalculateInterest(); 
      // this.Close(); 
     } 

     public void CalculateInterest() 
     { 
      //A = P(1 + rt) 
      double accountBalance = savingsAccount.AccountBalance; 
      double interestRate = double.Parse(interestUpDown.Text); 
      double term = double.Parse(termUpDown.Text); 
      double estimateInterest = (accountBalance * (1 + (interestRate * term))); 
      estimateTextBox.Text = estimateInterest.ToString("C"); 
     } 

    } 
} 
+0

。あなたが投稿したコードで、AccountBalanceを0から変更するものは何も見ません。 –

+0

Yoiuは、おそらく問題のある場所にあるので、SavingsAccountのコードを投稿する必要があります。おそらく、あなたは 'SavingsAccount'のプロパティの値を提供していないでしょう。 – Tim

+0

@ TimとD Stanley、本当に、私はSavingsAccountクラスの下で値を提供していません(しかし私はAccountクラスで行い、SavingsAccountクラスはAccountクラスから派生しています)。 Accountクラスから直接取り出すと、accountBalanceは0になります。Accountクラスの下にもかかわらず、accountBalanceは(私が入金した金額に基づいて)金額で割り当てられます。私は使用しているaccountBalanceの特定のインスタンスを確認する方法はありますか? (Visual Studioでその上にカーソルを置く以外に)。 –

答えて

3
にご InterestFormコンストラクタを変更し

:私はあなたが別の `SavingsAccount`インスタンスを持っていると同じものを更新していない疑いがある

public InterestForm(double accountBalance) : this() 
{ 
    savingsAccount.AccountBalance = accountBalance; 
} 
+2

デザイナ*は 'InitializeComponent()'を呼び出すパラメータのないコンストラクタを必要とします。おそらく、パラメータ化されたものを連鎖して、デザイナのパラメータのないコンストラクタを残す方が良いでしょう。それ以外の場合は、このコードによってデザイナが分割されます。 –

+0

@nikhilvartakありがとう。しかし、これはまだ0量を返しています。 –

+0

@マットのマグ、どういう意味なのか分かりません... –