2009-03-10 20 views
15

È passato attraverso la riga seguente nelle Linee guida per le applicazioni composite.Cosa significa "() =>" in C#?

So che il => è una lambda, ma ciò che fa la () significa?

Quali sono alcuni altri esempi di questo?

Come si chiama così posso cercarlo?

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

Quindi è vero. C# si sta trasformando in Perl! – rjh

risposta

9

Questo è un elenco di argomenti vuoto, ovvero l'espressione lambda non accetta argomenti.

16

Se si guarda alla x => x + 1

Ci vuole un parametro x e restituisce x incrementato di uno. Il compilatore userà l'inferenza del tipo per dedurre che x è probabilmente di tipo int e restituirà un altro int in modo da avere un lambda che accetta un parametro x di tipo int e restituisce un intero.

() => 3; 

è lo stesso ma non accetta un parametro, restituirà un numero intero.

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

Risulterà in un metodo di annullamento senza parametri.