Back to slide -- Keyboard shortcut: 'u'  previous -- Keyboard shortcut: 'p'  next -- Keyboard shortcut: 'n'  Annotated program -- Keyboard shortcut: 't'    bank-account/bank-account-properties/accumulating-bank-account.cs - A BankAccount class with a Balance property - without a balance instance variable.Lecture 5 - slide 7 : 29
Program 2

using System;

public class BankAccount {    

   private string owner;
   private decimal[] contributions;
   private int nextContribution;

   public BankAccount(string owner, decimal balance) {
      this.owner = owner; 
      contributions = new decimal[100];
      contributions[0] = balance;
      nextContribution = 1;
   }

   public decimal Balance {                           
     get {decimal result = 0;                         
          foreach(decimal ctr in contributions)       
             result += ctr;                           
          return result;                              
         }
   }    

   public void Deposit(Decimal amount){
     contributions[nextContribution] = amount;
     nextContribution++;
   } 

   public void Withdraw(Decimal amount){
     contributions[nextContribution] = -amount;
     nextContribution++;
   } 

   public override string ToString() { 
      return owner + "'s account holds " +
            + Balance + " kroner";                  
   }
}