工作流程 window 基础 =()=>

workflow window foundation =()=>

= () =>在c#中是什么意思?

我以前用过 lambda,但那些空括号 () 让我失望。

熟悉这个:

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

Article resource

这称为 lambda 表达式。本质上就是shorthand定义一个函数

这里有一个很好的教程来解释这个概念:

http://www.dotnetperls.com/lambda

() => new Sequence 部分及其下方的块是一个不带参数的 lambda 函数,return 一个 Sequence

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

它正在为变量或 属性 this.Implementation 分配一个 lambda 表达式。您必须像这样分解运算符:

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

()表示该方法不带参数; => 在调用 lambda 时将以下代码标识为 运行。

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

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