zoukankan      html  css  js  c++  java
  • lambda演变历史

        class LandmadaShow
        {
            public delegate void NoReturnWithPara(string name);
    
            //lambda演变历史
            public void Show()
            {
    
                {
                    //.NetFramework1.0  1.1
                    NoReturnWithPara noReturnWithPara = new NoReturnWithPara(this.DoNothing);
                    noReturnWithPara.Invoke("王大师");
                }
                int i = 10;
                {
                    //.NetFramework2.0  匿名方法,delegate关键字
                    //可以访问局部变量
                    NoReturnWithPara noReturnWithPara = new NoReturnWithPara(delegate (string name)
                    {
                        Console.WriteLine(name);
                        Console.WriteLine(i);
                    });
                    noReturnWithPara.Invoke("王大师");
                }
    
                {
                    //.NetFramework3.0   把delegate关键字去掉,增加了一个箭头goes to
                    //lambda表达式  参数列表=>方法体
                    NoReturnWithPara noReturnWithPara = new NoReturnWithPara((string name) =>
                   {
                       Console.WriteLine(name);
                       Console.WriteLine(i);
                   });
                    noReturnWithPara.Invoke("王大师");
                }
    
                {
                    //省略参数类型,编译器的语法糖,虽然没写,编译时还是有的,根据委托推算
                    NoReturnWithPara noReturnWithPara = new NoReturnWithPara((name) =>
                    {
                        Console.WriteLine(name);
                    });
                    noReturnWithPara.Invoke("王大师");
                }
    
                {
                    //如果方法体只有一行,可以去掉大括号和分号
                    NoReturnWithPara noReturnWithPara = new NoReturnWithPara((name) => Console.WriteLine(name));
                    noReturnWithPara.Invoke("王大师");
                }
    
                {
                    //new NoReturnWithPara可以省掉,也是语法糖,编译器自动加上
                    NoReturnWithPara noReturnWithPara = (name) => Console.WriteLine(name);
                    noReturnWithPara.Invoke("王大师");
                }
    
            }
            public void DoNothing(string name)
            {
                Console.WriteLine(name);
            }
        }
  • 相关阅读:
    vim的三种模式
    vi/vim 三种模式的操作
    vim(vi)下的三种模式及其相关命令
    linux下查看最消耗CPU、内存的进程
    hdu 5288 OO’s Sequence
    宿主机mac os无法连接到虚拟机centos
    cloudstack给已有zone加入物理网络
    oracle刚開始学习的人经常使用操作100问
    七天学会ASP.NET MVC (四)——用户授权认证问题
    JEECG常见问题大全征集
  • 原文地址:https://www.cnblogs.com/wangdash/p/11825823.html
Copyright © 2011-2022 走看看