C # 6 introduit des membres dotés d'une expression, qui permettent un code simplifié dans les méthodes et les propriétés qui ne renvoient que le résultat d'une expression:
public override string ToString()
{
return string.Format("{0} {1}", _field1, _field2);
}
devient:
public override string ToString() =>
string.Format("{0} {1}", _field1, _field2);
Puisque nous avons maintenant deux syntaxes exactement équivalentes et valides, une règle empirique doit être utilisée pour décider laquelle utiliser. Quand la nouvelle alternative est-elle appropriée?
public override string ToString() => $"{_field1} {_field2}";
?Réponses:
Les langages de programmation fonctionnels se composent uniquement d'expressions, de sorte que la plupart ont eu une fonctionnalité comme celle-ci depuis le début. Vous l'utilisez lorsque vous avez une expression relativement courte, souvent répétée, qui peut être remplacée par un nom encore plus court et beaucoup plus significatif.
Un exemple courant serait les prédicats qui sont utilisés ailleurs, comme:
Si l'expression est trop longue, il est préférable de la diviser en fonctions distinctes ou peut-être une fonction avec des résultats intermédiaires nommés. Si c'est court, mais que vous ne pouvez pas penser à un bon nom, vous feriez mieux de simplement copier l'expression plutôt que de créer un nom terrible comme
condition1
ou quelque chose.la source
De C # /. NET Little Wonders: membres d'expression en C # 6 :
(c'est moi qui souligne; voir la mise à jour 1 ci-dessous)
Plus du résumé de l'article ci-dessus:
Et une autre citation sur les performances, car les problèmes de performances peuvent également jouer lorsqu'il est approprié d'utiliser une certaine fonctionnalité de langue:
(italique, l'auteur)
Mise à jour 1: @ JörgWMittag a déclaré
Il semble que l'auteur d'origine ait mal parlé. Pour clarifier, à partir du nouveau et amélioré C # 6.0 :
Pour être clair, cela ne fait pas d'une méthode ou d'une propriété une expression . Il utilise la syntaxe d' expression pour réduire les lignes de code (et le nombre d'accolades).
Ma recommandation d'origine est toujours valable: utilisez-la lorsqu'elle rend votre code évident et plus facile à comprendre, et pas simplement parce que vous pouvez l'utiliser.
la source
return
mot - clé) puisse jamais conduire à plus de lisibilité. Après tout, l'expression complexe est toujours exactement la même expression complexe, juste enterrée dans un encombrement syntaxique.