2010-05-06 6 views
2

Je suis incapable de trouver le concept intégré .NET FCL de la préséance à l'effet de levier tout en construisant Expression Trees. Réf System.Linq.Expressions Namespace. Est-ce quelque chose qui doit être manipulé manuellement dans le code, ou est-ce implicite et je ne le reconnais pas, peut-être à travers des méthodes d'aide ou des classes?Priorité intégrée pour les arbres d'expression?

Je veux l'appliquer à des opérations mathématiques pour assurer 3 + 5 * 10 résultats à 53 au lieu de 80.

+0

Je pense (mais je ne sais pas, d'où un commentaire et non une réponse) qu'il n'y a pas de gestion de la priorité dans les arbres d'expression, parce que l'arbre ne laisse vraiment aucune marge de manœuvre pour cela. Par exemple, si vous écrivez du code pour convertir 'a + b * c' dans un arbre d'expression, et que vous le faites correctement, l'arbre ressemblera à:' a + 'où' expression1' serait 'b * c', et il n'y a vraiment aucun moyen que cela puisse évaluer autrement que celui que vous avez émis. –

Répondre

1

Le point entier de représenter le code comme un arbre est que la priorité est codée dans l'arbre structure lui-même, de sorte que vous n'avez pas besoin de s'en préoccuper.

+0

Si quelqu'un connaît les classes auxiliaires pour encoder l'arbre en fonction des règles de priorité recommandées, dans la FCL, alors je serai beaucoup plus avancé. –