zoukankan      html  css  js  c++  java
  • 委托之Lambda表达式的推导

     public delegate void ConsoleWriteStr(string name,DateTime now);

     public delegate int DelegateAdd(int x, int y);

                //第一步 使用匿名函数
                ConsoleWriteStr cws1= new ConsoleWriteStr(
                    delegate(string name, DateTime now){
                      Console.WriteLine("我叫{0},我喜欢学习{1}", name, now);
                    }
                );


                //第二步将delegate换成=> , =>的左边是参数列表,右边是函数体
                ConsoleWriteStr cws2 =  (string name, DateTime now)  => { Console.WriteLine("我叫{0},我喜欢学习{1}", name, now); };


                //第三步去掉操作类型,原因是委托要求与方法签名一致
                ConsoleWriteStr cws3 = ( name,  now) => { Console.WriteLine("我叫{0},我喜欢学习{1}", name, now); };


                //第三步去掉方法体的大括号,如果方法体只有一行,可以将大括号去掉
                ConsoleWriteStr cws4 = (name, now) => Console.WriteLine("我叫{0},我喜欢学习{1}", name, now); 

                DelegateAdd func = (x, y) => { return x + y; };
                DelegateAdd func1 = (x, y) => x + y;

                //系统自带的委托Action,该委托不带返回值
                Action ac1 = () => { }; //无参数无返回值
                Action<string> ac2 = x =>{ };  //泛型委托 一个参数可以去掉小括号
                Action<string> ac3 = x => { };  //泛型委托
                Action<string,int,DateTime,Action> ac4 = (x, y, z, a) => { };  //泛型委托

                //系统自带的委托Func,该委托带有返回值,最多16个参数,最后一个参数为返回值
                Func<string> fun1 = () => " ";
                Func<DateTime> fun2 = () => DateTime.Now;
                Func<string, double,long, int> fun3 = (s,l, d) => { return 1+l; };

  • 相关阅读:
    JAVA 正则表达式 (超详细)
    Windows命令-route
    Spring3 MVC请求参数获取的几种方法[转]
    Linux-支持中文
    Linux-Tmux使用初体验
    Linux命令-工作管理命令:&,ctrl+z,jobs,fg,bg
    Linux命令-服务管理命令:chkconfig
    Linux命令-文件系统常用命令:df,du,fsck,dumpe2fs
    Linux命令-用户管理:useradd,userdel,usermod,id,su,env,exit
    Linux命令-某个用户组下面的所有用户
  • 原文地址:https://www.cnblogs.com/netlws/p/8894137.html
Copyright © 2011-2022 走看看