Lambda 表达式

1.0:委托

2.0:匿名函数

3.5:

Lambda表达式:是一个匿名委托,是一种高效的类似于函数式编程的表达式,也是LINQ的基础。

语法:(参数)=>{方法体/表达式/语句块}

//参数列表中的参数类型可以是明确类型或者是推断类型

//如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出来

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()   //无参数   注:无参数必须显式写()
例(演变过程):
Func<string,int>strLength=delegate(string  str){return str.Length;};//匿名委托
strLength=(string str)=>{return str.Length;};//(显式类型参数列表)=> {语句},lambda表达式最冗长版本
strLength=(string str)=>str.Length; //(显式类型参数列表)=> 表达式
strLength=(str)=>str.Length;//(隐式类型参数列表)=> 表达式
strLength=str=>str.Length;//参数名 => 表达式
 
原文地址:https://www.cnblogs.com/haimingkaifa/p/5692057.html