使用C#委托实现信用卡用户定时还款功能

176 阅读1分钟

问题分析

此问题要使用c#中的委托功能来实现

代码块

主程序:

        {
            Delegate obj1 = new Delegate();
            Delegate obj2 = new Delegate();
            User u1 = new User("zhan", 4000, 300, 10);
            User u2 = new User("huang", 10000, 2000, 20);
            Operation operate = new Operation();
            obj1.Remind_event += operate.Remind_func;
            obj2.Deduct_event += operate.Deduct_func;
            for (int day = 0; day <= 30; day++)
            {
                if (u1.Date - day == 3)
                    obj1.MyRemind(u1);
                if (u2.Date - day == 3)
                    obj1.MyRemind(u2);
                if (day == u1.Date)
                {
                    Console.WriteLine("还款日期已到!");
                    obj2.MyDeduct(u1);
                }
                if (day == u2.Date)
                {
                    Console.WriteLine("还款日期已到!");
                    obj2.MyDeduct(u2);
                }
            }
        }
    }

类中定义用户还款的信息:

    {
        private string name;
        private double deposit, debt;
        private int date;

        public User(string name, double deposit, double debt, int date)
        {
            this.name = name;
            this.date = date;
            this.deposit = deposit;
            this.debt = debt;
        }
        public string Name { get { return name; } }
        public double Deposit { get { return deposit; } }
        public double Debt { get { return debt; } }
        public int Date { get { return date; } }
    }

此类定义事件与委托绑定:

    {
        public delegate void MyDelegate(User user);
        public event MyDelegate Remind_event;
        public event MyDelegate Deduct_event;
        public void MyRemind(User user)
        {
            if (Remind_event != null)
                Remind_event(user);
        }
        public void MyDeduct(User user)
        {
            if (Deduct_event != null)
                Deduct_event(user);
        }
    }

结果截图

图片.png

gitee代码地址:

gitee.com/zhan-zhan/w…

结果分析:

这个题目考验的是对委托和事件的熟悉程度,这个也展现了事件和委托的好处,方便使用