web-dev-qa-db-fra.com

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

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

Je serais ravi que quelqu'un puisse également me diriger vers des explications simples et des exemples d'utilisation.

68
Donny

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

Une grande chose au sujet des arbres d'expression est que vous pouvez les construire en code; c'est-à-dire que vous créez du code exécutable (ou une séquence d'étapes) dans le code . Vous pouvez également modifier le code avant de l'exécuter en remplaçant les 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

66
Roy Dictus