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

den*_*nis 12 c# lambda

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

Pau*_*ner 9

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

x => x + 1;
Run Code Online (Sandbox Code Playgroud)

上面的表达式为"对于给定的x,返回x + 1".

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

int number = 100;

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

number = increment(number); // Calls the delegate expression above.
Run Code Online (Sandbox Code Playgroud)

但是,lambda表达式的真正强大之处在于它可用于初始化表达式本身的内存中表示.

Expression<Func<int, int>> incrementExpression = x => x + 1;
Run Code Online (Sandbox Code Playgroud)

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