2009-03-10 9 views
15

Entré à travers la ligne suivante dans les directives d'application composite.Que signifie "() =>" en C#?

Je sais que le => est un lambda, mais qu'est-ce que le () signifie?

Quels sont d'autres exemples?

Comment l'appelle-t-on pour que je puisse le rechercher?

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

Donc c'est vrai. C# devient Perl! – rjh

Répondre

9

C'est une liste d'arguments vide, ce qui signifie que l'expression lambda ne prend aucun argument.

16

Si vous regardez x => x + 1

Il prend un paramètre x et renvoie x incrémenté d'un. Le compilateur utilisera l'inférence de type pour déduire que x est probablement de type int et retournera un autre int de sorte que vous ayez un lambda qui prend un paramètre x de type int et retourne un entier.

() => 3; 

est le même mais ne prend pas un paramètre, il renverra un nombre entier.

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

Entraînera une méthode void sans paramètre.