zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    Unity3D之Character Controller(CC)与GameObject的碰撞方法
    Unity3D之资源问题处理
    Unity3D之多个fbx导入场景, 合并多个动画
    Unity3D性能优化--- 收集整理的一堆
    批量删除
    Unity3D插件之Easy Touch 3.1(1): Easy Joystick
    Unity3D与iOS消息交互方法(1)--iOS接收Unity3D发出的消息
    爬虫 requests 模块
    Flask 模型操作
    11.4 Flask session,闪现
  • 原文地址:https://www.cnblogs.com/lori/p/2669102.html
Copyright © 2011-2022 走看看