Je ne parviens pas à le savoir en effectuant une recherche sur Google ou dans la documentation MSDN. Quelqu'un peut-il confirmer s'il prend en charge la syntaxe pour plus d'une ligne ?
Réponses
Trop de publicités?(Je suppose que vous parlez vraiment de déclarations multiples plutôt que de lignes multiples).
Vous pouvez utiliser plusieurs instructions dans une expression lambda en utilisant des accolades, mais seule la syntaxe qui n'utilise pas d'accolades peut être convertie en un arbre d'expression :
// Valid
Func<int, int> a = x => x + 1;
Func<int, int> b = x => { return x + 1; };
Expression<Func<int, int>> c = x => x + 1;
// Invalid
Expression<Func<int, int>> d = x => { return x + 1; };
Vous pouvez mettre autant de retours à la ligne que vous le souhaitez dans une expression lambda ; C# ignore les retours à la ligne.
Vous vouliez probablement demander à propos des multiples déclarations .
Les déclarations multiples peuvent être entourées d'accolades.
Voir le documentation .
Je ne pense pas que vous ayez fait des recherches sur MSDN ou même que vous ayez googlé la question. Le premier résultat de google lié à MSDN pour "c# lamda" est Expressions lambda (Guide de programmation C#) qui dit
Le corps d'une déclaration lambda peut être composé d'un nombre quelconque d'instructions ; Cependant, en pratique, il n'y en a généralement pas plus de deux ou trois.