using System;
public class Starter {
public static void Main() {
Bank account = new Bank();
account.NonSufficientFund += NonSufficientFundHandler;
account.Deposit(500);
account.Withdrawal(750);
}
public static void NonSufficientFundHandler(object o,BankEventArgs e) {
Console.WriteLine("NonSufficientFund Transaction");
Console.WriteLine("Balance: {0}", e.Balance);
Console.WriteLine("Transaction: {0}",e.Transaction);
}
}
public delegate void OverDrawn(object o, BankEventArgs e);
public class Bank {
public event OverDrawn NonSufficientFund;
public decimal Deposit(decimal amountDeposit) {
propBalance += amountDeposit;
return propBalance;
}
public decimal Withdrawal(decimal amountWithdrawn) {
decimal newBalance = propBalance - amountWithdrawn;
if (newBalance < 0) {
if (NonSufficientFund != null) {
BankEventArgs args = new BankEventArgs(Balance, amountWithdrawn);
NonSufficientFund(this, args);
}
return propBalance;
}
return propBalance = newBalance;
}
private decimal propBalance = 0;
public decimal Balance {
get {
return propBalance;
}
}
}
public class BankEventArgs : EventArgs {
public BankEventArgs(decimal amountBalance,decimal amountTransaction) {
propBalance = amountBalance;
propTransaction = amountTransaction;
}
private decimal propBalance;
public decimal Balance {
get {
return propBalance;
}
}
private decimal propTransaction;
public decimal Transaction {
get {
return propTransaction;
}
}
}
|