C#中的"() =>"是什么意思?

16

在“Composite Application Guidelines”中看到了以下代码行。

我知道=>是lambda表达式,但()代表什么意思?

还有其他类似的例子吗?

这个叫什么名字,我可以搜索一下?

this.regionViewRegistry.RegisterViewWithRegion(RegionNames.SelectionRegion
        , () => this.container.Resolve<EmployeesListPresenter>().View);

7
没错,C#正在变成Perl! - rjh
3个回答

22

17

如果你看 x => x + 1

它接受一个参数x并返回x加一。编译器将使用类型推断来推断x可能是int类型,并返回另一个int,因此您有一个lambda函数,它接受一个类型为int的参数x并返回一个整数。

() => 3;

相同但不带参数,会返回一个整数。

() => Console.WriteLine("hello");

将会产生一个没有参数的 void 方法。


10

这是一个空参数列表,意味着Lambda表达式不带参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接