Utilisation pratique des arbres d'expression

c# expression-trees

Question

Les arbres d’expression sont une fonctionnalité intéressante, mais quelles sont ses utilisations pratiques? Peuvent-ils être utilisés pour une sorte de génération de code ou de métaprogrammation?

Réponse d'expert

Comme Jon le note, je les utilise pour fournir des opérateurs génériques avec .NET 3.5. Je les utilise également (encore dans MiscUtil) pour fournir un accès rapide aux constructeurs autres que ceux par défaut (vous ne pouvez pas utiliser Delegate.CreateDelegate avec des constructeurs, mais Expression fonctionne très bien).

Autres utilisations des arbres d'expression créés manuellement:

Mais vraiment, Expression est une manière très versatile d’écrire un code dynamique. Beaucoup plus simple que Reflection.Emit , et pour mon argent, plus simple à comprendre que CodeDOM. Et dans .NET 4.0, vous avez encore plus d'options disponibles. Je montre les bases de l'écriture de code via Expression sur mon blog .


Réponse populaire

Marc Gravell les a très bien utilisées dans MiscUtil pour implémenter des opérateurs génériques .



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