Lambda表达式的非常简单的解释

时间:2011-05-14 11:48:37

标签: c# lambda

我正在寻找一个非常简单 - 基本 - 没有硬核编程的mumbo jumbo,简单地用外行的术语概括了一个Lambda表达式。

4 个答案:

答案 0 :(得分:9)

简单地说,lambda表达式是一个可重用的表达式,它带有许多参数:

x => x + 1;

上面的表达式为“给定的x,返回x + 1”。

在.NET中,这很强大,因为它可以编译成一个匿名委托,一个无名函数,你可以声明内联你的代码并评估得到一个值:

int number = 100;

Func<int, int> increment = x => x + 1;

number = increment(number); // Calls the delegate expression above.

然而,lambda表达式的真正强大之处在于它可用于初始化表达式本身的内存表示。

Expression<Func<int, int>> incrementExpression = x => x + 1;

这意味着您可以将该表达式赋予LINQ to SQL之类的内容,并且它可以理解表达式的含义,将其转换为具有相同含义的SQL语句。这是lambda与普通方法和委托非常不同的地方,通常是混乱开始的地方。

答案 1 :(得分:3)

Lambda表达式是内联函数,它们与常规函数具有不同的语法。

用于平方数字的示例Lambda表达式。

 x => x * x

答案 2 :(得分:2)

一种小型的无名内联方法。这对你来说基本够用吗?我不确定你到底在找什么。

你也用“外行人”的术语说过 - 我认为你有一定程度的软件开发经验(所以不是一个完整的外行)

答案 3 :(得分:1)

在非函数式编程语言中,表达式(作用于变量)执行计算,并执行一次这些计算。

Lambda表达式允许您通过可以在列表上工作的不同语法代码定义(在表达式中),并且在概念上可以被视为函数。


您可以将其简化为“他们让您在表达式中定义函数”。


不完全达到“为什么”。在我看来,为什么更有趣。 Lambda表达式允许操作函数和部分函数。