c# 事件

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace 委托与事件处理_c_____

{

    //时间只能在声明这个时间的类中引发。

    //引发时必须适当地进行初始化的参数有两个:Sender(引发事件的对象) e(包含时间参数的对象)

    class Account

    {

        protected decimal _balance;

 

        public delegate void OverdraftEventHandler(object sender, OverdraftEventArgs e);//声明委托

        public event OverdraftEventHandler OnOverdarftHanler;//将委托定义为事件(event关键字),声明一个对象OnOverdarftHanler

        public Account(decimal init)

        {

            _balance = init;

        }

        public decimal Banlance

        {

            get

            {

                return _balance;

            }

        }

        //public void Deposit(decimal aDeposit)

        //{

        //    _balance += aDeposit;

        //}

        public bool Withdrawal(decimal aDebit)

        {

            OverdraftEventArgs args = new OverdraftEventArgs(_balance, aDebit);

            OnOverdraft(args);

            return false;

        }

 

        public void AddOnOverdraft(OverdraftEventHandler handler)

        {

            OnOverdarftHanler += handler;

        }

 

        protected void OnOverdraft(OverdraftEventArgs e)

        {

            if (OnOverdarftHanler != null)

                OnOverdarftHanler(this,e);//类内部调用事件

        }

    }

 

    public class OverdraftEventArgs : EventArgs//事件参数,继承,描述了透支本质

    {

        protected decimal _balance;

        protected decimal _withdrawal;

 

        public OverdraftEventArgs(decimal balance, decimal withdrawal)

        {

            _balance = balance;

            _withdrawal = withdrawal;

        }

 

 

 

    }

}

        //订阅事件

        //Account account = new Account(100);

        //Account.OverdraftEventHandler handler = new Account.OverdraftEventHandler(OnOverdraft);//创建事件实例,

                                                                                                 //将符合要求的函数写入

        //account.AddOnOverdraft(handler);

 

        //static void OnOverdraft(object sender, OverdraftEventArgs e)//严格定义指定的参数

        //{

        //    DO_SOMETHING

        //}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值