整理后记下来,备忘:
View Code
1 dynamic dynEo = new ExpandoObject();
2 // 运行时属性
3 dynEo.number = 10;
4
5
6 // 运行时方法
7 dynEo.Increment = new Action(() => {
8 dynEo.number++;
9 });
10 //dynEo.Increment = (Action)(() => {
11 // dynEo.number++;
12 //});
13
14 // 传入参数int,不返回
15 dynEo.IncrementWithPara = new Action<int>(p => {
16 dynEo.number += p;
17 });
18 dynEo.IncrementWithPara = (Action<int>)(p => {
19 dynEo.number += p;
20 });
21
22
23 // 不传入参数,返回decimal
24 dynEo.GetIncrement = (Func<decimal>)(() => {
25 return ((decimal)dynEo.number) / 2;
26 });
27
28 // 传入参数int,并返回decimal
29 dynEo.GetIncrement = (Func<int, decimal>)(p =>
30 {
31 if (p == 0)
32 return 0;
33 return ((decimal)dynEo.number)/p;
34 }
35 );
36 // 等同于:
37 //dynEo.GetIncrement = new Func<int, decimal>(p => {
38 // if (p == 0)
39 // return 0;
40 // return dynEo.number / p;
41 // }
42 // );


浙公网安备 33010602011771号