• 【C#复习总结】细说 Lambda表达式


    前言

    本系列会将【委托】 【匿名方法】【Lambda表达式】 【泛型委托】 【表达式树】 【事件】等基础知识总结一下。(本人小白一枚,有错误的地方希望大佬指正)

    系类1:细说委托

    系类2:细说匿名方法

    系列3:细说Lambda表达式

    系列4:细说泛型委托

    系列5:细说表达式树

    系列6:细说事件

    接着上篇的匿名方法来讲一下Lambda表达式,依然用大佬的文章来震场:

    “原本很简单的程序,加上几个delegate关键字,这代码一下就变得深奥了,深奥的东西懂的人就变少了,所以这个还可以作为加薪的筹码。但是微软对C#的设计理念是简单易用。微软就想方设法的来简化delegate(int x, int y) { return x + y; }这个匿名方法,Lambda就出现了。”

    什么是Lambda表达式

    Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的 匿名函数 。 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。

    3 Lambda表达式的使用

    Lambda表达式有3种使用方法,如下:

        class Program
        {
            //step01:首先用delegate定义一个委托 。
            public delegate int CaculateAdd(int x, int y);
            static void Main(string[] args)
            {
                //方法一:
                CaculateAdd cAdd1 = (int x, int y) => { return x + y; };
                int result1 = cAdd1(3, 6);
    
                //方法二:
                CaculateAdd cAdd2 = (x, y) => { return x + y; };
                int result2 = cAdd2(4, 6);
    
                //方法三:
                CaculateAdd cAdd3 = (x, y) => x + y;
                int result3 = cAdd2(5, 6);
    
    
                Console.WriteLine("{0},{1},{2}",result1, result2, result3);
                Console.ReadKey();           
            }
        }

    方法一:简单的把delegate去掉,在(){}之间加上  "=>"

    方法二:在方法一的基础上把参数类型都干掉了。

    方法三:要干就干彻底些,把{},以及return关键字都去掉了。

    这几种方法随便怎么写都行,不过就是害苦了初学者,一会儿看到这种写法,一会儿看到那种写法,把人搞的神魂颠倒人,如果没人指点,确实会迷糊,难就难在这儿。

    总结

    微软就是会折腾,每个人的编程习惯又不一样,一是要养成自己良好的编程习惯,二是要想看懂别人的代码,基础知识要做到位,否则看别人代码简直天书(ps:除去那种不写注释的大仙)。

    至此,Lambda表达式讲到这就已经基本上会用了,下篇讲下泛型委托。

    参考文献:https://www.cnblogs.com/xcj26/p/3536082.html

  • 相关阅读:
    剑指offer-包含min函数的栈-栈和队列-python
    计算机系统基础(一):程序的表示、转换与链接(第二周小测验)
    计算机系统基础(一):程序的表示、转换与链接(第一周小测验)
    数据结构与算法(周测2-AVL树)
    数据结构与算法(周测1-算法分析)
    数据结构-排序
    数据结构-图的遍历
    数据结构-图基础
    数据结构-散列查找
    数据结构-堆(优先队列)
  • 原文地址:https://www.cnblogs.com/mhq-martin/p/9058129.html
Copyright © 2020-2023  润新知