using System.Collections.Generic;
using System.Threading.Tasks;
public Account(string n,string a)
public void AddToBalance(double amount)
public void RemoveFromBalance(double amount)
public string getAddress()
public double getBalance()
public class AccountHolder
public Boolean AccountInc(Account a,double amt)
public Boolean AccountDec(Account a,double amt)
a.RemoveFromBalance(amt);
public delegate Boolean IncrementAccountDelegate(Account a,double d);
public delegate Boolean DecrementAccountDelegate(Account a,double d);
accounts=new Account[10];
public void AddAccount(string n,string a)
accounts[nNumAccounts++]=new Account(n,a);
public void PostToAccount(int nAcct,double d,IncrementAccountDelegate inc,DecrementAccountDelegate dec)
public void PrintAccountStatus()
for(int i=0;i<nNumAccounts;++i)
Console.WriteLine("Name:{0} \nAddress:{1} \nBalance:{2}",accounts[i].getName(),accounts[i].getAddress(),accounts[i].getBalance());
public static void Main(string[] args)
AccountHolder ah=new AccountHolder();
AccountDB adb=new AccountDB();
adb.AddAccount("Deep Fanse", "A/26, Johny Bhai's Corner, Airoli");
adb.AddAccount("Kumar Rathod", "420, Kalyan Chowl, Kalyan");
adb.AddAccount("Ajit Komurlekar", "420, Bhandup West, Bhandup");
adb.AddAccount("Suvarna Bhise", "786, Powai Bala, Powai");
AccountDB.IncrementAccountDelegate iad=new AccountDB.IncrementAccountDelegate(ah.AccountInc);
AccountDB.DecrementAccountDelegate dad=new AccountDB.DecrementAccountDelegate(ah.AccountDec);
adb.PostToAccount(0,10000.00,iad,dad);
adb.PostToAccount(0,200.00,iad,dad);
adb.PostToAccount(0,-50.00,iad,dad);
adb.PostToAccount(1,500.00,iad,dad);
adb.PostToAccount(1,300.00,iad,dad);
adb.PostToAccount(1,-150.00,iad,dad);
adb.PrintAccountStatus();
Console.Write("\nPress Enter to Quit..");