Question

Quel est le maximum que l'arborescence d'expression LINQ peut faire?

Peut-il définir une classe? Que diriez-vous d’une méthode, avec tout le nom déclaré, les modificateurs, le type de paramètre et le type de retour?

Le programme doit-il toujours définir l’arbre lui-même? Est-il possible de générer l’arborescence à partir d’un fichier C # donné?

Où puis-je obtenir des ressources pour apprendre à écrire les expressions de base à avancées Expression Tree et Expression Tree Visitor? (articles et vidéos seront géniaux)

Merci à ceux qui peuvent nous aider ...

Était-ce utile?

La solution

En C # 3, les arbres d'expression peuvent représenter des expressions . D'où le nom. Et elles sont en outre limitées à un sous-ensemble d'expressions C # - pas d'expressions d'affectation, pas d'expressions impliquant des types de pointeur, etc. ".

Dans les bibliothèques livrées avec C # 4, nous avons étendu l'arborescence des expressions bibliothèque afin qu'elle prenne également en charge les arborescences d'instructions. Cependant, C # 4 ne traduira pas automatiquement une instruction-lambda en un "arbre d'instructions".

C’est une caractéristique évidente et utile à laquelle nous n’avions tout simplement pas le temps de parler pour le C # 4. Nous allons l’envisager pour de futures versions hypothétiques. Si vous avez un très bon scénario utilisateur pour les arbres de relevés, je serais ravi de l’entendre.

L’extension évidente de tout ce qui est constitué par les arbres de déclaration, qui représenteraient les déclarations de classe, les déclarations de structure, etc. Avoir une homoiconicité totale entre le langage C # et la bibliothèque d’arbres d’expression serait génial. Cela permettrait toutes sortes de scénarios de métaprogrammation intéressants. Mais cela n'arrivera pas de si tôt, alors ne vous faites pas espérer. C’est plus un rêve à long terme qui pourrait ne jamais se produire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top