lambda表达式学习笔记 -- 作为委托的lambda表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lambda表达式学习笔记 -- 作为委托的lambda表达式相关的知识,希望对你有一定的参考价值。
C#中的Lambda表达式就是C# 2中匿名方法的演变,因此从一个匿名函数开始一步步简化写法。
例子是获取一个string参数,然后返回一个int。
首先匿名方法的写法如下:
Func<string, int> returnLength; returnLength = delegate (string text) { return text.Length; }; Console.Write(returnLength("Hello"));
lambda表达式最冗长的形式是:
(显式类型的参数列表) => {语句} (=> 可以看成是 goes to )
上面例子lanbda表达式的写法就可以写成是:
Func<string, int> returnLength; returnLength = (string text) => { return text.Length; }; Console.Write(returnLength("Hello")); Console.Read();
这种写法和匿名方法非常相似
除了用如上的代码块的形式来返回值,大多数时候都可以用一个表达式来表示整个主体,该表达式的值就是lambda的结果,格式就变为:
(显式的参数列表) => 表达式
上面的例子就变为
Func<string, int> returnLength; returnLength = (string text) => text.Length;
由于编译器已经强大到可以很轻松的猜出参数类型,所以在这种情况下可以进一步简化为:
(隐式类型的参数列表) =>表达式
上面的例子就变为:
Func<string, int> returnLength; returnLength = (text) => text.Length;
到目前已经相当简短了,但是在一个参数的情况下,这个括号还有点碍眼,那就可以继续简化:
参数名=>表达式
例子的lambda表达式的最终形式就是:
Func<string, int> returnLength; returnLength = text => text.Length;
以上是关于lambda表达式学习笔记 -- 作为委托的lambda表达式的主要内容,如果未能解决你的问题,请参考以下文章
Java学习笔记3.9.1 Lambda表达式 - Lambda表达式入门
Java学习笔记3.9.4 Lambda表达式 - 操作数组