Func和Action委托在代码中的写法
Func和Action这两个东西可以说是为代码简化了不少东西,不仅我们在平时用的多,就连微软自己也经常在用它们,最近看了orchard项目,就发现很多这种的匿名方法和lambda表达式。
这是缓存对象时用委托,它
这是建立orchard有时,它使用了Action委托
下面我对Func和Action委托的调用方法用代码说明一下:
1 class Action_Fun的委托用法 2 { 3 string Get1(int key, Func<int, string> acquire); 4 5 string Get2(int key, Func<string> acquire); 6 7 void Set1(int key, Action<string> acquire); 8 9 void Set2(int key, Action acquire);10 11 /// <summary>12 /// 一个输入参数,一个返回值的Fun13 /// </summary>14 /// <returns></returns>15 public string Fun1()16 {17 return Get1(1, a =>18 {19 if (a == 1)20 return "ok";21 else22 return "fail";23 });24 }25 /// <summary>26 /// 只有返回值的Fun27 /// </summary>28 /// <returns></returns>29 public string Fun2()30 {31 return Get2(1, () =>32 {33 return "fail";34 });35 36 37 }38 /// <summary>39 /// 一个输入参数的Action40 /// </summary>41 public void Action1(int a)42 {43 Set1(a, (i) => //1个参数时,扩括号可以省略44 {45 Console.WriteLine(i, a);46 });47 }48 49 /// <summary>50 /// 没有参数的Action51 /// </summary>52 public void Action2(int a)53 {54 Set2(a, () =>55 {56 Console.WriteLine("您输入的内容是:{0}", a);57 });58 }59 }
TAG: