• c# action<> func<> 这2个委托怎么用和理解


    其实很好理解的呢!~首先你需要明白,他们是委托的简写形式。

    一。【action<>】指定那些只有输入参数,没有返回值的委托

    1.1定义一个委托:

    比如,我们原来写委托:

    public delegate void myDelegate(string str); 这个委托表示,它只能委托那些只有一个输入值而没有返回值的方法,比如下面的这个方法。

    1.2定义方法

    public static void HellowChinese(string strChinese)

            {

                Console.WriteLine("早上好," + strChinese);

            }

    1.3调用

    myDelegate d = new myDelegate(HellowChinese);

                d("王总");

    1.4使用action委托这个方法。

    如果我们用原来的方法调用HellowChinese方法,觉得很麻烦,还得自己定义一个委托。那有没有不需要很明白的定义委托呢?

    好了,微软就弄了action这么一个委托,我们只需要把符合它要求的方法传进去 就OK啦。。

     

    我方法还是用这个:

    public static void HellowChinese(string strChinese)

            {

                Console.WriteLine("早上好," + strChinese);

     

            }

     

    那我调用这个方法的时候,我就不需要自定义delegate了。我这样就可以:

    Action<string> action = HellowChinese;

                action("王总");

     

    这样就省去了,减少了很多步骤。

     

     

    二。func<> 这个和上面的那个是一样的,区别是这个有返回值!~~~

    2.1原先我们定义delegate

    public delegate string myDelegate(string str);

    2.2.定义方法

     public static string HellowEnglish(string strEnglish)

            {

                return "Hellow " + strEnglish;

            }

    2.3 调用

    myDelegate d = new myDelegate(HellowEnglish);

                d("Lanny");

    2.4使用func调用

    方法还是一样

     public static string HellowEnglish(string strEnglish)

            {

                return "Hellow " + strEnglish;

            }

     

    但是我们不需要自定义delegate了。。如下

    Func<string, string> f = HellowEnglish;

                f("Lanny");

    就可以了

    2.5截图

  • 相关阅读:
    记一次JAVA WEB项目解决XSS攻击的办法(亲测有效)
    常用oracle可重复执行的脚本模板
    mybatis配置文件查询参数的传递
    oracle xmltype导入并解析Excel数据 (五)中间表数据入库
    oracle xmltype导入并解析Excel数据 (四)特别说明
    oracle xmltype导入并解析Excel数据 (三)解析Excel数据
    oracle xmltype导入并解析Excel数据 (二)规则说明
    oracle xmltype导入并解析Excel数据 (一)创建表与序
    ipv4,ipv6起止地址判断,网段判断
    HTML li标签排列有空白间隙
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/3517808.html
Copyright © 2020-2023  润新知