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         /// 一个输入参数,一个返回值的Fun

13         /// </summary>

14         /// <returns></returns>

15         public string Fun1()

16         {

17             return Get1(1, a =>

18             {

19                 if (a == 1)

20                     return "ok";

21                 else

22                     return "fail";

23             });

24         }

25         /// <summary>

26         /// 只有返回值的Fun

27         /// </summary>

28         /// <returns></returns>

29         public string Fun2()

30         {

31             return Get2(1, () =>

32              {

33                  return "fail";

34              });

35 

36 

37         }

38         /// <summary>

39         /// 一个输入参数的Action

40         /// </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         /// 没有参数的Action

51         /// </summary>

52         public void Action2(int a)

53         {

54             Set2(a, () =>

55             {

56                 Console.WriteLine("您输入的内容是:{0}", a);

57             });

58         }

59     }

你可能感兴趣的:(action)