2015-05-14 68 views
0

=() =>在c#中的含义是什么?workflow window foundation =()=>

我以前使用过lambda,但是那些空的parens ()正在把我扔掉。

熟悉此:

customers.Find(x=>x.FirstName=="John") 

Article resource

enter image description here

+3

这是一个lambda表达式。 – SLaks

+0

它是一个lambda表达式或一个匿名函数。有关在C#中使用的信息,请参见MSDN参考资料[此处](https://msdn.microsoft.com/zh-cn/library/bb397687.aspx)。 –

+0

我不明白downvote? OP显然不符合C#lambda之前,直到你听到名称'lambda'它不是简单的东西谷歌... –

回答

2

()只是表示匿名方法没有参数。你习惯看的方式,如customers.Find(x=>x.FirstName == "John")是一样的......第一个x是传递给lambda的参数。如果只有一个参数,括号是可选的,所以也可以这样写:customers.Find((x)=>x.FirstName == "John")使用不带参数的方法时,“单参数”排除不适用,因此您必须编写()。你可以看到更多in the documentation.

lambda调用之前的=将随后的方法体指派给Implementation属性。

2

与它下面的块沿着() => new Sequence部分是一个lambda函数不带参数,并且返回一个Sequence

这拉姆达是分配给this.Implementation,以便稍后您可以调用lambda。例如,var s = this.Implementation()

4

它将lambda表达式分配给变量或属性this.Implementation。你必须打破这样的运营商:

this.Implementation 
= //assignment operator 
()=> new Sequence { /* stuff */ }; 

该()是指定该方法不带参数; =>标识随后的lambda调用时要运行的代码。

+0

我以前使用lambda的,但像以下内容: – Rod

+0

customers.Find(x => x.FirstName ==“约翰”),但空(()抛出我猜我猜 – Rod