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();
}
}
}
委託
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.