一.提前分析 可知还款时有俩种情况,即银行卡余额能还清贷款,银行卡余额不足还清,即此处就是运用委托的地方。 二.实验代码 using System; namespace Con { class Credit { public double _loan; public Credit(double loan) { _loan = loan; }
}
// 第二个类
class Bankcard
{
public double _balance;
public Bankcard(double balance)
{
_balance = balance;
}
}
delegate double Call(ref double n1, ref double n2);
public class Re
{
public static double Returnloan2(ref double loan, ref double balance)
{
balance = balance - loan;
return balance;
}
public static double Returnloan3(ref double loan, ref double balance)
{
loan = loan - balance;
balance = 0;
return loan;
}
}
class Program
{
static void Main(string[] args)
{
Credit objc1 = new Credit(20000);
Bankcard objb1 = new Bankcard(10000);
Credit objc2 = new Credit(10000);
Bankcard objb2 = new Bankcard(20000);
Console.WriteLine("已到还款时间,请还款");
if (objc1._loan > objb1._balance)
{
Call u = Re.Returnloan3;
double result = u(ref objc1._loan, ref objb1._balance);
Console.WriteLine("obj1银行卡余额不足,还欠款: " +result);
}
if (objc1._loan <= objb1._balance)
{
Call u = Re.Returnloan2;
double result = u(ref objc1._loan, ref objb1._balance);
Console.WriteLine("obj1还款成功,银行卡余额为:" + result);
}
if (objc2._loan > objb2._balance)
{
Call u = Re.Returnloan3;
double result = u(ref objc2._loan, ref objb2._balance);
Console.WriteLine("obj2银行卡余额不足,还欠款: " +result);
}
if (objc2._loan <= objb2._balance)
{
Call u = Re.Returnloan2;
double result = u(ref objc2._loan, ref objb2._balance);
Console.WriteLine("obj2还款成功,银行卡余额为:" + result);
}
}
}
} 三.运行截图
四.存在问题
对于定时功能还无法成功编辑。
五.gitee仓库地址。
gitee.com/xie-junlong…