Cuál es la mejor fue la de evaluar una expresión como la siguiente:
(A y B) o (A y C) o (No B y C)
o
(A & & B) || (A & & C) || (! B & & C)
Análisis/evaluación de expresiones lógicas dinámicas en C# o VB?
En tiempo de ejecución, que estaba planeando convertir las expresiones anteriores a la siguiente:
(verdadero y falso) o (verdadero y falso) o (No es falso y verdadero)
o
(Verdadero & & False) || (Verdadero & & False) || (! Falso & & Verdadero)
Condiciones: 1) La expresión lógica no se conoce hasta tiempo de ejecución. 2) La variable de número y sus valores no se conocen hasta el tiempo de ejecución. 3) Los valores de las variables nunca son nulos.
Sé que podría crear un ensamblaje simple con una clase y un método que genero en tiempo de ejecución basado en las entradas, pero ¿hay una mejor manera. He hecho esto antes. Use un constructor de cadenas para escribir el código, luego llame al compilador. Después de eso, carga el ensamblado y llama al método.
Sugerencias?
Gracias.
¿Qué estás tratando de lograr? ¿Puedes compartir cómo vienes a las comparaciones? Esto parece algo que podría abordarse mejor de manera diferente. –
Parece una lista de cosas para comparar. Podría repetir la lista y romperla cuando encuentre que dos son verdaderas. –
Podrías escribir un analizador sintáctico simple de Propositional ... Recuerdo tener que hacer uno para resolver el problema Wumpus World. –