Lambda表达式是比匿名函数还简洁的一种匿名方法语法
Lambda表达式缩写推演
new Func<string,int>(delegate(string str){return str.Lenth});//内置委托 delegate(string str){return str.length;}//匿名函数 (string str)=>{return str.length} //lambda语句 (string str)=>str.Lenth //lambda语句 (str)=> str.Lenth //让编辑器推断类型 str=str.length //去掉不必要的括弧
注意:
语句Lambda和表达式Lambda的区别在于,前者在=>右边有一个语句块(大括号),而后者只有一个表达式(没有return和大括号)
Lambda本身无类型,所以不能赋值给var变量,编译时会生成一个静态方法,然后在实例化委托传递。