zoukankan      html  css  js  c++  java
  • ACTION与FUNC

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

    Delegate的代码:

    public delegate void myDelegate(string str);
    public static void HellowChinese(string strChinese)
    {
        Console.WriteLine("Good morning," + strChinese);
        Console.ReadLine();
    }
    
    myDelegate d = new myDelegate(HellowChinese);
    d("Mr wang");

    用了Action之后呢:

    public static void HellowChinese(string strChinese)
    {
        Console.WriteLine("Good morning," + strChinese);
        Console.ReadLine();
    }
    
    Action<string> action = HellowChinese;
    action("Spring.");

    就是相当于省去了定义委托的步骤了。

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

    public static string HelloEnglish(string strEnglish)
    {
        return "Hello." + strEnglish;
    }
    
    Func<string, string> f = HelloEnglish;
    Console.WriteLine(f("Srping ji"));
    Console.ReadLine();

    ------------------------------------------------------------

    稍微扩展一些

    在C#3.0中引用了Limbda表达式,Limbda表达式实际上就是一个方法,只不过该方法是匿名方法(即没有名称的方法)

    代码片段:  Func<int,string,string> t=(int x, string b) => (x.ToString() + b);就等于

    private  string  deletegate  TestString(int x string b );//定义一个委托,返回值为string类型

    private string  test(int x string b)

    {

      return x.ToString() + b;

    }

    TestString t=new TestString(test);

    t(44,"bbb");

    Func<int,string,string>就是定义一个委托=private  string  deletegate  TestString(int x string b ),前两个参数是相应方法的参数类型,最后一个为方法的返回类型。

    由此看到FUNC的最后一个参数是返回值

  • 相关阅读:
    软件设计7个原则
    vue.js 样式绑定 font-size 问题
    实例理解scala 隐式转换(隐式值,隐式方法,隐式类)
    著名端口整理(常用服务的默认端总结)
    .NET Core Web API 实现大文件分片上传
    ngnix反向代理tomcat,ssl证书配置及自定义错误页面
    微信登录闪退
    gradle如何配置阿里云的中央仓库
    HashMap底层实现和原理
    关于Java中String类的hashCode方法
  • 原文地址:https://www.cnblogs.com/wangchuang/p/5535194.html
Copyright © 2011-2022 走看看