expressions - C#lambda variable de inicialización
lambda expressions c# (3)
Esto no es realmente una inicialización de variable, esto enlaza la expresión lambda "string.Empty" a "m", por lo que cada vez que elimines la referencia "m", evaluará tu expresión lambda.
Para obtener más información, consulte esta página de github (sección "Miembro de la función con cuerpo de expresión")
Esta pregunta ya tiene una respuesta aquí:
Hoy por primera vez he visto algo similar a esto:
private string m => string.Empty;
utilizando lambda para inicializar una variable. ¿Por qué hacerlo así y cuáles son los beneficios?
No es una variable, es una expresión de propiedad corporal. Una propiedad de solo lectura, en su caso que devuelve string.Empty
.
Es lo mismo que
private string m { get { return string.Empty; } }
Es una de las nuevas características introducidas en C # 6.0. El beneficio es el código más corto, más conciso. Especialmente si tienes una clase con muchas propiedades simples de solo lectura.
Si desea ver un ejemplo real de esta sintaxis, consulte esta publicación en el blog de Eric Lippert . Como puede ver, hay muchos métodos y propiedades de una línea allí. Sin propiedades y miembros con cuerpo de expresión, el código sería mucho más largo. Y una parte considerable de ella serían llaves.
Se llama Propiedades de expresión y es simplemente un acceso directo para las propiedades de solo obtención:
private string m
{
get { return string.Empty; }
}
En cuanto a los beneficios de este enfoque, supongo que puede tratarlo como azúcar sintáctica que solo le ahorra algunas pulsaciones.
Ver Roslyn Wiki