使用委托的信用卡还款

功能说明:

还款功能的设计:分别设计了信用卡类与储蓄卡类,通过main方法来检测是否是还款日,如果是就会将委托与事件绑定来执行信用卡中的还款方法paymoney。

当不是还款日会输出信用卡的待还金额与储蓄卡余额。

未能实现的功能是将设计多张储蓄卡并选择一张进行绑定。


namespace CreditandStoreage
{
    class StoreageCard
    {
        public string user;
        private int money;
        public int Money
        {
            get { return money; }
            set { money = value; }
        }
    }
    class Credit_Card : StoreageCard
    {
        private int time;
        Deposit_card card1;
        public Credit_Card(string u, int t, int m, Deposit_card c)
        {
            user = u; time = t; Money = m; card1 = c;
        }
        public int Time
        {
            get { return time; }
            set { time = value; }
        }
        public void paymoney()
        {
            Console.WriteLine("用户{0}:信用卡待还:{1},储蓄卡余额:{2}", user, Money, card1.Money);
            if (card1.Money < Money)
            {
                Money -= card1.Money;
                card1.Money = 0;
                Console.WriteLine("已到还款日期,您的储蓄卡余额不足,还完部分欠款后,信用卡待还:{0},储蓄卡余额:{1}", Money, card1.Money);
            }
            else
            {
                card1.Money -= Money;
                Money = 0;
                Console.WriteLine("已到还款日期,还完欠款后,信用卡待还:{0},储蓄卡余额:{1}", Money, card1.Money);
            }
        }
        public void notime()
        {
            Console.WriteLine("未到还款日期,储蓄卡余额:{0},信用卡待还:{1}", Money, card1.Money);
        }

    }
    class Deposit_card : StoreageCard { }
    class Paydelegate
    {
        public delegate void paydelegate();
        public event paydelegate payevent;
        public void Notify()
        {
            if (payevent != null)
            {
                payevent();
            }
        }


    }

    class Program
    {
        static void Main(string[] args)
        {
            int paytime = 8;//将还款日期定为每月8号
            Deposit_card D1 = new Deposit_card();
            D1.Money = 1000;
            Credit_Card C1 = new Credit_Card("张三", 8, 3000, D1);
            Paydelegate pay = new Paydelegate();
            if (paytime == C1.Time)
            {
                pay.payevent += new Paydelegate.paydelegate(C1.paymoney);
            }
            else
                pay.payevent += new Paydelegate.paydelegate(C1.notime);
            pay.Notify();
        }

    }
}

clone地址:https://github.com/Aka-Achillest/CreditCardPayment.git

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值