Significado de () => Operador en C #, si existe

Leí esta interesante línea aquí , en una respuesta de Jon Skeet.

La línea interesante es esta, donde él abogó usando un delegado:

Log.Info("I did something: {0}", () => action.GenerateDescription()); 

La pregunta es, ¿qué es este operador () =>, me pregunto? Traté de buscarlo en Google, pero como está hecho de símbolos, Google no podría ser de mucha ayuda, de verdad. ¿Perdí algo vergonzosamente aquí?

Esto introduce una función lambda (delegado anónimo) sin parámetros, es equivalente y básicamente corta para:

 delegate void () { return action.GenerateDescription(); } 

También puedes agregar parámetros, así que:

 (a, b) => a + b 

Esto es aproximadamente equivalente a:

 delegate int (int a, int b) { return a + b; } 

“=>” este es el operador lambda, cuando no tenemos ningún parámetro de entrada, simplemente usamos corchetes antes del operador lambda.

syntax: (parámetros de entrada) => expresión

Este es un ejemplo de una expresión lambda que puede aprender más aquí .

Creando un delegado anónimo al método especificado.

Probablemente, en tu caso será una Func

Es una forma de pasar un delegado anónimo sin parámetros como expresión lambda.

Similar a esto desde .NET 2.0

 Log.Info("I did something: {0}", delegate() { return action.GenerateDescription(); });