对于 .NET 新手来说,Lambda 表达式似乎是一个常见的绊脚石。有没有人有很好的资源来向新手解释它们?
问问题
131 次
1 回答
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);
这些是基础。我希望这有帮助。
于 2012-08-03T21:13:56.720 回答