zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    高精度运算专题1-加法运算(The addition operation)
    大数据除法(Large data division)
    大数据阶乘(The factorial of large data)
    大数据加减(Big data addition and subtraction)
    我凭什么能上北大——贺舒婷
    说说我自己(安徽一考生)-2
    说说我自己(安徽一考生)-1
    一个夏日的早晨(山东济南一考生)
    洛谷-回文质数-过程函数与递归
    洛谷-数字反转(升级版)-简单字符串
  • 原文地址:https://www.cnblogs.com/mhq-martin/p/9058129.html
Copyright © 2011-2022 走看看