Peut un C# expression lambda ont plus qu'une seule déclaration?
Peut un C# lambda expression comprend plus qu'une seule déclaration?
(Edit: Comme mentionné dans plusieurs réponses ci-dessous, à cette question initialement posée à propos de "lignes" plutôt que des "déclarations".)
- Oui, vous pouvez utiliser plusieurs lignes. Je ne me sens pas bien en faire une réponse complète.
- quoi ne pas faire une réponse... vous avez raison!
- Parce que c'est une question oui / non, je n'ai pas l'impression que c'est digne de la rep, il serait de générer à partir de upvotes.
Vous devez vous connecter pour publier un commentaire.
Sûr:
Vous pouvez mettre autant de retours à la ligne que vous le souhaitez dans une expression lambda; C# ignore les sauts de ligne.
Vous avez probablement destiné à poser au sujet de plusieurs états.
Plusieurs instructions peuvent être enveloppés dans des accolades.
Voir le la documentation.
(Je suis en supposant que vous êtes réellement en train de parler de plusieurs états, plutôt que de plusieurs lignes.)
Vous pouvez utiliser plusieurs instructions dans une lambda expression à l'aide d'accolades, mais uniquement la syntaxe qui permet de ne pas utiliser l'appareil peut être converti en une arborescence d'expression:
Depuis C# 7:
Unique instruction de la ligne:
Multiligne déclaration:
bien que ceux-ci sont appelés aux fonctions locales, je pense que cela est un peu plus propre que les autres et c'est effectivement le même
De Les Expressions Lambda (Guide De Programmation C#):
Avec c# 7.0
Vous pouvez l'utiliser comme ça aussi
Disons que vous avez une classe:
Avec le C# 7.0 à l'intérieur de cette classe, vous pouvez le faire même sans les accolades:
et
serait la même chose que:
Ce pourrait également être utile si vous avez besoin d'écrire l'régulièrement une méthode ou d'un constructeur dans une ligne ou lorsque vous avez besoin de plus d'une déclaration d'expression, pour être emballé dans une expression:
ou
ou
Plus sur la déconstruction des tuples dans la documentation.