向新手解释Lambda Expression语法的好资源?

时间:2012-08-03 21:03:11

标签: .net linq lambda

Lambda表达式似乎是.NET新手的常见绊脚石。有没有人有足够的资源向新手解释?

1 个答案:

答案 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);

这些是基础知识。我希望这会有所帮助。