Que sont les arbres d'expression, comment les utilisez-vous et pourquoi les utiliseriez-vous?

.net c# expression-trees linq

Question

Je viens de tomber sur le concept d'arbre d'expression que j'ai entendu à plusieurs reprises. Je veux juste comprendre ce que l’on entend par un arbre d’expression et son objectif.

J'adorerais que quelqu'un me dise des explications simples et des exemples d'utilisation.

Réponse acceptée

Un arbre d'expressions est une structure de données contenant des expressions, qui est essentiellement du code. C'est donc une arborescence qui représente un calcul que vous pouvez faire en code. Ces morceaux de code peuvent ensuite être exécutés en "exécutant" l'arborescence des expressions sur un ensemble de données.

Une grande chose à propos des arbres d'expression est que vous pouvez les construire dans le code; c'est-à-dire que vous construisez du code exécutable (ou une séquence d'étapes) en code . Vous pouvez également modifier le code avant de l'exécuter en remplaçant des expressions par d'autres expressions.

Une expression est alors un délégué de fonction, tel que (int x => return x * x) .

Voir aussi http://blogs.msdn.com/b/charlie/archive/2008/01/31/expression-tree-basics.aspx



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow