using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CalculateDiscount
{
//定义委托
public delegate List<decimal> dlgDiscount(decimal Price, decimal Area);
//计算折扣的类
class CalculateDisc
{
//计算完之后的房子现价、单价
static List<decimal> list = new List<decimal>();
public decimal TotalPrice//现总价
{
get{
return list[0];
}
}
public decimal UnitPrice//单价
{
get{
return list[1];
}
}
//计算价格的函数
public void CalPrice(decimal Price, decimal Area, List<dlgDiscount> dlgList)
{
list.Add(Price);
list.Add(Area);
foreach (var item in dlgList)
{
//计算
list = item(list[0], list[1]);
}
}
}
class Program
{
static void Main(string[] args)
{
//类的对象
CalculateDisc myDisc = new CalculateDisc();
//委托字段
List<dlgDiscount> dlgList = new List<dlgDiscount>();
//打八折
dlgList.Add((decimal Price, decimal Area) =>
{
List<decimal> list = new List<decimal>();
Price = Price * 0.8m;
list.Add(Price);
list.Add(Area);
return list;
});
//减现2000元
dlgList.Add((decimal Price, decimal Area) =>
{
List<decimal> list = new List<decimal>();
Price = Price - 2000m;
list.Add(Price);
list.Add(Price/Area);
return list;
});
//开始计算
decimal myPrice = 200000m, myArea = 100m;//例子,20W的房子,100平
myDisc.CalPrice(myPrice, myArea, dlgList);
//计算完之后的,list保存的就是房子现价和单价
Console.WriteLine("现价:{0:F},单价:{1:F}", myDisc.TotalPrice, myDisc.UnitPrice);
Console.Read();
}
}
}
委托
最新推荐文章于 2023-07-22 15:08:11 发布