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);
            }
        }
  • 相关阅读:
    字节输入输出流
    数据库安全性
    数据库设计:三种范式
    (Java篇) 代理服务:Nginx ---》(1)介绍及安装
    (十七)微信小程序:全局优化
    (十六)微信小程序:电影详情页
    (十五)微信小程序:优化电影页面
    (十四)微信小程序:上拉加载 下拉刷新
    (十三)微信小程序:更多电影页面
    管理:会议纲要
  • 原文地址:https://www.cnblogs.com/wangdash/p/11825823.html
Copyright © 2011-2022 走看看