Csharp/CSharp Tutorial/Development/EventArgs

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

EventArgs Demo

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