Csharp/CSharp Tutorial/Development/EventArgs

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

EventArgs Demo

<source lang="csharp">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;
       }
   }

}</source>