C # 6 introduce miembros con cuerpo de expresión, que permiten un código simplificado en métodos y propiedades que solo devuelven el resultado de una expresión:
public override string ToString()
{
return string.Format("{0} {1}", _field1, _field2);
}
se convierte en:
public override string ToString() =>
string.Format("{0} {1}", _field1, _field2);
Dado que ahora tenemos dos sintaxis exactamente equivalentes y válidas, se debe usar alguna regla general para decidir cuál usar. ¿Cuándo es apropiada la nueva alternativa?
public override string ToString() => $"{_field1} {_field2}";
?Respuestas:
Los lenguajes de programación funcional consisten solo en expresiones, por lo que la mayoría ha tenido una característica como esta desde el principio. Lo usa cuando tiene una expresión relativamente corta, a menudo repetida con frecuencia, que puede reemplazarse por un nombre aún más corto y mucho más significativo.
Un ejemplo común serían los predicados que se usan en otros lugares, como:
Si la expresión es demasiado larga, es mejor dividirla en funciones separadas o tal vez una función con resultados intermedios con nombre. Si es breve, pero no se te ocurre un buen nombre, es mejor que solo copie la expresión en lugar de crear un nombre terrible como
condition1
o algo así.fuente
De C # /. NET Little Wonders: Miembros con cuerpo de expresión en C # 6 :
(énfasis, mío; ver Actualización 1 a continuación)
Más del resumen del artículo anterior:
Y otra cita sobre el rendimiento, porque los problemas de rendimiento también pueden influir cuando es apropiado usar una determinada función del lenguaje:
(énfasis, el autor)
Actualización 1: @ JörgWMittag dijo
Parece que el autor original puede tener errores de expresión. Para aclarar, de The New and Improved C # 6.0 :
Para ser claros, esto no hace que un método o propiedad sea una Expresión . Utiliza la sintaxis de Expresión para reducir las líneas de código (y los números de llaves).
Mi recomendación original sigue en pie: úsela cuando haga que su código sea obvio y más fácil de entender, no simplemente porque puede usarlo.
fuente
return
palabra clave) pueda conducir a una mayor legibilidad. Después de todo, la expresión compleja sigue siendo exactamente la misma expresión compleja, simplemente enterrada en el desorden sintáctico.