zoukankan      html  css  js  c++  java
  • C# Lambda表达式

    Lambda表达式

    "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。Lambda表达式x => x * x读作"x goes to x times x"。可以将此表达式分配给委托类型,如下所示:

    1. delegate int del(int i);  
    2. del myDelegate = x => x * x;  
    3. int j = myDelegate(5); //j = 25 

    Lambda表达式可以有多个参数、一个参数,或者没有参数。其参数类型可以隐式或者显式。示例代码如下:

    1. (x, y) => x * y         //多参数,隐式类型=> 表达式  
    2. x => x * 5              //单参数, 隐式类型=>表达式  
    3. x => { return x * 5; }      //单参数,隐式类型=>语句块  
    4. (int x) => x * 5            //单参数,显式类型=>表达式  
    5. (int x) => { return x * 5; }      //单参数,显式类型=>语句块  
    6. () => Console.WriteLine()   //无参数 

    上述格式都是Lambda表达式的合法格式,在编写Lambda表达式时,可以忽略参数的类型,因为编译器能够根据上下文直接推断参数的类型,示例代码如下。

    1. (x, y) => x + y         //多参数,隐式类型=> 表达式 

    Lambda表达式的主体可以是表达式也可以是语句块,这样就节约了代码的编写。

  • 相关阅读:
    [Codeforces 339D] Xenia and Bit Operations
    [Codeforces 459D] Pashmak and Parmida's problem
    [Codeforces 460C] Present
    [Codeforces 466C] Number of Ways
    [Codeforces 650A] Watchmen
    Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法
    select函数详解
    都是stm32的JTAG引脚惹的祸
    uboot中的快捷菜单的制作说明
    卷积的本质及物理意义(全面理解卷积)
  • 原文地址:https://www.cnblogs.com/Fooo/p/6510772.html
Copyright © 2011-2022 走看看