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

目录

  • 问题分析
  • 1.各部分代码
  • 2.全部代码
  • 运行截图
  • 总结
  • 代码仓库

问题分析

这个问题结合委托与事件实现
①写一个委托类,信用卡类,储蓄卡类
②将还款看做一个事件
③信用卡与储蓄卡相联系

1.各部分代码

代码如下:

class repayment{//定义还款委托public delegate void repayM();//还款事件public event repayM onrepay;public void issue(){if (onrepay != null){Console.WriteLine("事件发生!");onrepay();}}}
//定义储蓄卡class Dcard{private int Hmoney;public Dcard(int money){this.Hmoney = money;}public int getmoney(){return this.Hmoney;}public void setmoney(int r){this.Hmoney = r;}}
//定义信用卡class creditcard{public string name;public int balance;public string dueday;public Dcard d;//初始化public creditcard(string name, int balance, string dueday, Dcard d){this.name = name;this.balance = balance;this.dueday = dueday;this.d = d;}public void repay(){Console.WriteLine("还款日期{0}已到",this.dueday);Console.WriteLine("用户{0}当前欠款{1}", this.name, this.d.getmoney());d.setmoney(this.d.getmoney() + balance);Console.WriteLine("用户已还款");Console.WriteLine("还款金额{0}", Math.Abs(this.balance));Console.WriteLine("欠额为{0}", d.getmoney());}}

2.全部代码

using System;namespace windowstest2._3
{class repayment{//定义还款委托public delegate void repayM();//还款事件public event repayM onrepay;public void issue(){if (onrepay != null){Console.WriteLine("事件发生!");onrepay();}}}//定义储蓄卡class Dcard{private int Hmoney;public Dcard(int money){this.Hmoney = money;}public int getmoney(){return this.Hmoney;}public void setmoney(int r){this.Hmoney = r;}}//定义信用卡class creditcard{public string name;public int balance;public string dueday;public Dcard d;//初始化public creditcard(string name, int balance, string dueday, Dcard d){this.name = name;this.balance = balance;this.dueday = dueday;this.d = d;}public void repay(){Console.WriteLine("还款日期{0}已到",this.dueday);Console.WriteLine("用户{0}当前欠款{1}", this.name, this.d.getmoney());d.setmoney(this.d.getmoney() + balance);Console.WriteLine("用户已还款");Console.WriteLine("还款金额{0}", Math.Abs(this.balance));Console.WriteLine("欠额为{0}", d.getmoney());}}class Program{  static void Main(string[] args){Dcard d1 = new Dcard(5000);creditcard c = new creditcard("张三",-1000,"2021.5.2",d1);repayment rm = new repayment();rm.onrepay += new repayment.repayM(c.repay);rm.issue();}}
}

运行截图

在这里插入图片描述

总结

这次实验了解了委托与事件的操作,但是在初期的时候理解起来有点困难,也这到了它们在现实生活中的作用。

代码仓库

代码仓库


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部