Je commence à programmer au C # 2.0, donc je n'ai jamais utilisé les expressions de Lambda, mais pourquoi tellement de fusses à ce sujet? Sont-ils juste du sucre syntaxique autour des délégués anonymes, ou y a-t-il quelque chose de plus que je ne peux pas voir? P>
4 Réponses :
Ils peuvent facilement être utilisés comme juste syntaxe sucre autour d'un délégué, mais la grande chose à propos de Lambdas est que le compilateur a la capacité de les transformer en Arbres d'expression em> qui ouvrent de nombreuses possibilités (non le moindre qui étant LINQ). < / p>
Bien que ce soit la grande chose en termes de Linq à SQL, et j'utilise personnellement le fait qu'ils sont plus souvent plus souvent que j'utilise des arbres d'expression ...
Moi aussi - mais je pense que sans expression arbres et Linq, l'équipe C # aurait été moins encline à ajouter des expressions de Lambda à la langue de la thermophone seule :)
Avoir une syntaxe très terrese le rend plus probable que plus de choses seront construites autour d'eux. Imaginez une requête de Linq complexe sans aucune sorte de sucre syntaxique. P>
Je crains de ne pas faire de Linq. Je suis coincé dans C # 2.0 pour l'instant, donc je ne peux pas imaginer ça. Merci quand même.
Eh bien, les expressions Lambda ont deux éléments principaux sur les méthodes anonymes: p>
Sauf si vous utilisez des arbres d'expression, ils sont extrêmement similaires aux méthodes anonymes. La différence est que vous pouvez souvent écrire plusieurs expressions Lambda dans une déclaration (procédé de chaînage des appels ensemble) sans perdre de la lisibilité, mais les méthodes anonymes sont un peu trop verbeuses. P>
Au fait, ce n'est pas tellement que les expressions Lambda sont "juste du sucre syntaxique autour des délégués anonymes", car les expressions de Lambda et les méthodes anonymes sont "juste du sucre syntaxique autour de créer des délégués (et des arbres d'expression)". P>
Ne pas escompter Syntaxtic Sugar, cependant, les avantages des fonctions anonymes agissant en tant que fermetures sont énormes, ainsi que la possibilité d'avoir le code juste où vous le souhaitez, au lieu d'une méthode distincte. P>
Jabtw est ma nouvelle abréviation pour la journée - juste un peu trop wordy. Parfait pour les critiques de code.
+1 mmmmmm ... Arbres d'expression.
Ainsi, l'expression utilisée afin que les agrégats de méthodes anonymes puissent être effondrés pour le code qui effectue essentiellement des méthodes écrites manuellement?
@ 280z28 - Je ne sais pas vraiment ce que tu veux dire, j'ai peur.
Merci beaucoup vous tous, les gars. Semble que je dois lire beaucoup de choses pour commencer à comprendre cela.
sont-ils juste du sucre syntaxique autour délégués anonymes, ou est là quelque chose de plus que je ne peux pas voir? p> blockQuote>
bonne question. La réponse est compliquée. Tout d'abord, évidemment, les arbres d'expression sont le grand. Mais il y a aussi certaines subtilités. Voici mes cinq Prolix et fréquemment digressoirs d'articles sur le sujet de la manière dont les Lambdas sont subtilement différents des méthodes anonymes: P>
Tous mes articles sur les problèmes impliquant des expressions Lambda sont archivés ici: p>
http://blogs.msdn.com/ericlippert /Rarchive/tags/LAMBDA+XPESSIONS/DEFAULT.ASPX P>
La nouveauté est sa propre récompense: arstechnica.com/old/content/2008/06/...
Oui, c'est un duplicata, "Quel est le but de Lambdas" a été demandé à une période de zillion. Mais je ne pense pas que les gens semblent prendre l'idée de doublons du tout sérieusement.
Oui, c'est un duplicata, "Quel est le but de Lambdas" a été demandé à une période de zillion. Mais je ne pense pas que les gens semblent prendre l'idée de doublons du tout sérieusement.