workflow window foundation =()=>

时间:2015-05-14 19:44:02

标签: c# workflow

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

我之前使用过lambda,但那些空洞的()让我失望了。

熟悉这个:

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

Article resource

enter image description here

4 个答案:

答案 0 :(得分:4)

它正在为变量或属性this.Implementation分配一个lambda表达式。你必须像这样打破运营商:

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

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

答案 1 :(得分:2)

这称为lambda表达式。从本质上讲,它是定义函数的简写。

这是一个体面的教程,解释了这个概念:

http://www.dotnetperls.com/lambda

答案 2 :(得分:2)

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

此lambda被分配给this.Implementation,以便稍后您可以调用lambda。例如,var s = this.Implementation()

答案 3 :(得分:2)

()只是意味着匿名方法没有参数。您过去常常看到的方式与customers.Find(x=>x.FirstName == "John")相同......第一个x是传递给lambda的参数。如果只有一个参数,则括号是可选的,因此也可以这样写:customers.Find((x)=>x.FirstName == "John")使用不带参数的方法,单个参数'排除不适用,因此您必须编写()。您可以看到更多in the documentation.

lambda调用之前的=将后面的方法体分配给Implementation属性。