2009-03-10 57 views
15

Đến qua dòng sau trong Nguyên tắc áp dụng tổng hợp."() =>" có nghĩa là gì trong C#?

Tôi biết => là lambda nhưng ý nghĩa của () là gì?

Một số ví dụ khác về điều này là gì?

Gọi là gì để tôi có thể tìm kiếm?

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

Vì vậy, đó là sự thật. C# đang biến thành Perl! – rjh

Trả lời

9

Đó là danh sách đối số trống, có nghĩa là biểu thức lambda không có đối số.

16

Nếu bạn nhìn vào x => x + 1

Phải mất một tham số x và trả về x tăng lên một. Trình biên dịch sẽ sử dụng suy luận kiểu để trừ rằng x có lẽ là kiểu int và sẽ trả về một int khác để bạn có một lambda nhận tham số x của kiểu int và trả về một số nguyên.

() => 3; 

giống nhau nhưng không có tham số, nó sẽ trả về một số nguyên.

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

Sẽ dẫn đến phương pháp trống không có tham số.