功能说明:
当到达指定日期时,会触发还款。
如果顾客储蓄卡余额大于等于月消费总额,则会从顾客的储蓄卡余额中进行扣除,并提示“XX已进行本月信用卡还款XX,卡内余额XX”。
如果顾客储蓄卡余额小于月消费总额,则还款失败,并提示“用户余额不足,还款失败”。
代码如下
//每个月会有信用卡账单显示月消费总额,月消费总额是小于信用卡总额度的;
//用户有若干储蓄卡,可选择某张储蓄卡进行还款;还款是指从储蓄卡中划走信用卡的月消费总额到信用卡;
//如果储蓄卡余额不足则还款动作不成功。
//要求如下:①必须使用委托②事件的触发方式是每个月的到期还款日;
class Customer
{
private string name;
private int xiaofei;
private int chuxuka;
private int data;
public Customer(string name, int xiaofei, int chuxuka, int data)
{
this.name = name;
this.xiaofei = xiaofei;
this.chuxuka = chuxuka;
this.data = data;
}
//利用属性实现get,set
public string Name
{
get { return name; }
set { name = value; }
}
public int Xiaofei
{
get { return xiaofei; }
set { xiaofei = value; }
}
public int Chuxuka
{
get { return chuxuka; }
set { chuxuka = value; }
}
public int Data
{
get { return data; }
set { data = value; }
}
}
class BANK
{
public void DispMethod(Customer customer)
{
Console.WriteLine("用户已接到信用卡还款的通知!");
if (customer.Chuxuka > customer.Xiaofei)
{
customer.Chuxuka = customer.Chuxuka - customer.Xiaofei;
Console.WriteLine("{0}已进行本月信用卡还款{1},卡内余额{2}", customer.Name, customer.Xiaofei, customer.Chuxuka);
}
else
Console.WriteLine("用户余额不足,还款失败");
}
}
class Delegate
{
// 定义委托
public delegate void MeDelegate(Customer customer);
// 定义事件
public event MeDelegate NotifyPay_event;
public event MeDelegate huankaun_event;
public void Notifypay(Customer customer)
{
// 如果事件不为 null
if (NotifyPay_event != null)
{
Console.WriteLine("到达还款日期:");
// 触发事件
NotifyPay_event(customer);
}
}
public void huankaun(Customer customer)
{
// 如果事件不为 null
if (huankaun_event != null)
{
Console.WriteLine("触发事件:");
// 触发事件
huankaun_event(customer);
}
}
}
class TestEvents
{
[STAThread]
static void Main(string[] args)
{
// 委托的对象
Delegate objDelegate = new Delegate();
// ClassA 的对象
Customer objClassA = new Customer("张三",150,200,4);
// 订阅该事件
BANK bank1 = new BANK();
objDelegate.NotifyPay_event += new Delegate.MeDelegate (bank1.DispMethod);
objDelegate.Notifypay(objClassA);
}
}
结果如图
gitee地址