Lambda表达式似乎是.NET新手的常见绊脚石。有没有人有足够的资源向新手解释?
答案 0 :(得分:1)
lambda只是一个像这样的匿名方法:
delegate(string parm1, int parm2)
{
// ...
}
lambda的第一部分是方法参数。如果没有参数,或者如果有多个参数,则需要括号:
// no parameters
() => null
// one parameter
x => null
// multiple parameters
(x, y, z) => null
对应于上述匿名方法的lambda将被写入:
(string parm1, int parm2) => ...
根据lambda的使用方式,编译器实际上可以推断出参数的类型和返回值,因此并不总是需要它们。
lambda的最后一部分是方法体。
delegate(string parm1, int parm2)
{
return string.Format("{0}{1}", parm1, parm2);
}
与
相同(parm1, parm2) =>
{
return string.Format("{0}{1}", parm1, parm2);
}
如果方法的主体是单行,则lambda不需要return关键字,也不需要花括号:
(parm1, parm2) => string.Format("{0}{1}", parm1, parm2);
这些是基础知识。我希望这会有所帮助。