EventArgs Demo : EventArgs « Development « C# / CSharp Tutorial






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;
        }
    }
}








14.39.EventArgs
14.39.1.EventArgs Demo