2009-03-10 31 views
15

Pasa a través de la siguiente línea en las Pautas de la aplicación compuesta.¿Qué significa "() =>" en C#?

Sé que el => es una lambda, pero lo que hace el () quiere decir?

¿Cuáles son algunos otros ejemplos de esto?

¿Cómo se llama para poder buscarlo?

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

Así que es cierto. C# se está convirtiendo en Perl! – rjh

Respuesta

9

Esa es una lista de argumentos vacía, lo que significa que la expresión lambda no tiene argumentos.

16

Si nos fijamos en x => x + 1

Se necesita un parámetro X y devuelve x incrementa en uno. El compilador utilizará inferencia de tipo para deducir que x es probablemente de tipo int y devolverá otro int para que tenga un lambda que toma un parámetro x de tipo int y devuelve un entero.

() => 3; 

es lo mismo, pero no toma un parámetro, se devolverá un número entero.

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

Se generará un método nulo sin parámetros.