1

对于 .NET 新手来说,Lambda 表达式似乎是一个常见的绊脚石。有没有人有很好的资源来向新手解释它们?

4

1 回答 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 回答