2012年9月3日星期一

Func和Action委托在代码中的写法

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: