zoukankan      html  css  js  c++  java
  • Lambda表达式的前世今生~~~~~~

    废话不多说,上代码

    namespace MyLamdba
    {
        class Program
        {
            static void Main(string[] args)
            {
                LamDbaShow.Show();
                Console.ReadKey();
            }
        }
    }

    ======

    namespace MyLamdba
    {
        public delegate void OutNoResultNoPara(); //无返回值
        public delegate void OutNoResultWithPara(string name, DateTime now); //
        public delegate int WithResultWithPara(int x, int y);
        public delegate string NoParaWithResult();
        public class LamDbaShow
        {
            public static void Show()
            {
                //匿名函数,这里的省略了把方法名传过来,直接把传参的拿过来了,把方法名去掉了
                OutNoResultWithPara method1 = new OutNoResultWithPara(delegate(string name, DateTime now)
                {
                    Console.WriteLine("我是{0},现在{1}点了", name, now);
                });
                method1.Invoke("aaaa", DateTime.Now);
                //====================^=^^=^^=^^=^我是漂亮的分割线……^=^^=^^=^^=^=============================================
                OutNoResultWithPara method2 = new OutNoResultWithPara(
                    (string name, DateTime now) => //把delegate 关键字换成了=> 箭头的左边是参数列表,右边是方法体
                    {
                        Console.WriteLine("我是{0},现在{1}点了", name, now);
                    });
                method2.Invoke("aaaa", DateTime.Now);
                //lamdba表达式其实就是一个匿名方法
                //====================^=^^=^^=^^=^我是漂亮的分割线……^=^^=^^=^^=^=============================================
                OutNoResultWithPara method3 = new OutNoResultWithPara(
                    (name, now) => //把delegate 关键字换成了=> 箭头的左边是参数列表,右边是方法体
                    {
                        Console.WriteLine("我是{0},现在{1}点了", name, now);
                    }); //去掉了参数类型,因为在进行委托的时候,约束了传入参数的类型
                method3.Invoke("aaaa", DateTime.Now);
                //====================^=^^=^^=^^=^我是漂亮的分割线……^=^^=^^=^^=^=============================================
                OutNoResultWithPara method4 = ((name, now) =>
                {
                    Console.WriteLine("我是{0},现在{1}点了", name, now);
                }); //去掉了实例化委托,直接传参
                method3.Invoke("aaaa", DateTime.Now);
                //====================^=^^=^^=^^=^我是漂亮的分割线……^=^^=^^=^^=^=============================================
                OutNoResultWithPara method = (s, d) => Console.WriteLine("我是{0},现在{1}点了", s, d);
                //去掉了大括号,前提是方法体只有一行
                method.Invoke("猪猪猪", DateTime.Now);
                //====================^=^^=^^=^^=^我是漂亮的分割线……^=^^=^^=^^=^=============================================
                OutNoResultNoPara met = () => Console.WriteLine("132123"); //不传入参数的
                met.Invoke();
                //====================^=^^=^^=^^=^我是漂亮的分割线……^=^^=^^=^^=^=============================================
                WithResultWithPara WW = (x, y) =>
                {
                    return x + y;
                };
                Console.WriteLine(WW.Invoke(1, 2));
                WithResultWithPara WS = (x, y) => x + y;
                Console.WriteLine(WS.Invoke(1, 2)); //去掉了大括号,带返回值的直接去掉return 前提是方法体只有一行,
                //====================^=^^=^^=^^=^我是漂亮的分割线……^=^^=^^=^^=^=============================================
                OutNoResultNoPara sss = () =>
                {}; //无参数无返回值,啥都没干
                NoParaWithResult aa = () => "我是无参数有返回值";
                Console.WriteLine(aa());
            }
            public static void Study(string name, DateTime now)
            {
                Console.WriteLine("我是{0},现在{1}点了", name, now);
            }
        }
    }
  • 相关阅读:
    [矩阵快速幂专题]
    [hdoj6415 Rikka with Nash Equilibrium][dp]
    [codeforces][dp]
    [2019年湘潭大学程序设计竞赛(重现赛)H chat][背包dp]
    [一道区间dp][String painter]
    [hdoj4578][多延迟标记的线段树]
    [cf1138BCircus][枚举,列等式]
    [Assign the task][dfs序+线段树]
    Codeforces round 419 div2 补题 CF 816 A-E
    Educational Codeforces Round 23 A-F 补题
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/7638139.html
Copyright © 2011-2022 走看看