= () =>
在c#中的含义是什么?
我之前使用过lambda,但那些空洞的()
让我失望了。
熟悉这个:
customers.Find(x=>x.FirstName=="John")
答案 0 :(得分:4)
它正在为变量或属性this.Implementation分配一个lambda表达式。你必须像这样打破运营商:
this.Implementation
= //assignment operator
()=> new Sequence { /* stuff */ };
()指定该方法不带参数; =>标识后面的内容作为调用lambda时要运行的代码。
答案 1 :(得分:2)
答案 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
属性。