Quel est le meilleur était d'évaluer une expression comme ce qui suit:
(A et B) ou (A et C) ou (non B et C)
ou
(A & & B) || (A & & C) || (! B & & C)
Analyse/expression logique dynamique en C# ou VB?
Lors de l'exécution, je comptais sur la conversion des expressions ci-dessus à ce qui suit:
(vrai et faux) Ou (Vrai et faux) Ou (pas faux et vrai)
ou
(Vrai & & Faux) || (Vrai & & Faux) || (! Faux & & vrai)
Conditions: 1) L'expression logique n'est pas connu avant l'exécution. 2) La variable nombre et leurs valeurs ne sont pas connues avant l'exécution. 3) Les valeurs de variables ne sont jamais nulles.
Je sais que je pourrais créer un assemblage simple avec une classe et une méthode que je génère au moment de l'exécution en fonction des entrées, mais y a-t-il un meilleur moyen. Je l'ai déjà fait. Utilisez un générateur de chaîne pour écrire le code, puis appelez le compilateur. Après cela, vous chargez l'assembly et appelez la méthode.
Suggestions?
Merci.
Qu'est-ce que vous essayez d'accomplir? Pouvez-vous partager comment vous venez aux comparaisons? Cela ressemble à quelque chose qui pourrait être mieux abordé différemment. –
On dirait une liste de choses à comparer. Vous pourriez itérer la liste, et casser quand vous trouvez que deux sont vrais. –
Vous pourriez écrire un analyseur logique propositionnel simple ... Je me souviens d'avoir à faire un pour résoudre le problème de Wumpus World. –