委托

我乃菜鸟,我自己画的关于委托的理解:

委托

 

代码:

 

委托
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace CalculateDiscount
 7 {
 8     //定义委托
 9     public delegate List<decimal> dlgDiscount(decimal Price, decimal Area);
10     
11     //计算折扣的类
12     class CalculateDisc
13     {        
14         //计算完之后的房子现价、单价
15         static List<decimal> list = new List<decimal>();
16 
17          public decimal TotalPrice//现总价
18          {
19              get{
20                      return list[0];
21              }
22         }
23 
24          public decimal UnitPrice//单价
25          {
26              get{
27                  return list[1];
28              }
29         }
30 
31         //计算价格的函数
32         public void CalPrice(decimal Price, decimal Area, List<dlgDiscount> dlgList)
33         {
34             list.Add(Price);
35             list.Add(Area);
36             foreach (var item in dlgList)
37             {
38                 //计算
39                 list = item(list[0], list[1]);
40             }
41         }
42     }
43     class Program
44     {
45         static void Main(string[] args)
46         {
47             //类的对象
48             CalculateDisc myDisc = new CalculateDisc();
49             //委托字段
50             List<dlgDiscount> dlgList = new List<dlgDiscount>();
51 
52             //打八折
53             dlgList.Add((decimal Price, decimal Area) =>
54             {
55                  List<decimal> list = new List<decimal>();
56                  Price = Price * 0.8m;
57                  list.Add(Price);
58                  list.Add(Area);
59                  return list;
60             });
61             //减现2000元
62             dlgList.Add((decimal Price, decimal Area) =>
63             {
64                 List<decimal> list = new List<decimal>();
65                 Price = Price - 2000m;
66                 list.Add(Price);
67                 list.Add(Price/Area);
68                 return list;
69             });
70 
71             //开始计算
72             decimal myPrice = 200000m, myArea = 100m;//例子,20W的房子,100平
73             myDisc.CalPrice(myPrice, myArea, dlgList);
74 
75             //计算完之后的,list保存的就是房子现价和单价
76             Console.WriteLine("现价:{0:F},单价:{1:F}", myDisc.TotalPrice, myDisc.UnitPrice);
77 
78             Console.Read();
79         }
80     }
81 }
委托

委托

上一篇:【狂神说Java】顺序结构,选择结构


下一篇:Win7系统中MS SQLServer 2005 无法连接