Nota: La evaluación de la expresión matemática no es el foco de esta pregunta. Quiero compilar y ejecutar código nuevo en tiempo de ejecución en .NET. Dicho esto ...¿Es posible compilar y ejecutar código nuevo en tiempo de ejecución en .NET?
me gustaría para permitir al usuario introducir cualquier ecuación, como la siguiente, en un cuadro de texto:
x = x/2 * 0.07914
x = x^2/5
y tener esa ecuación se aplica a los puntos de datos entrantes. Los puntos de datos entrantes están representados por x y cada punto de datos es procesado por la ecuación especificada por el usuario. Hice esto hace años, pero no me gusta la solución, ya que requiere analizar el texto de la ecuación para cada cálculo:
float ApplyEquation (string equation, float dataPoint)
{
// parse the equation string and figure out how to do the math
// lots of messy code here...
}
Cuando se está procesando botes llenos de puntos de datos, esto introduce un poco de gastos generales. Me gustaría poder traducir la ecuación en una función, sobre la marcha, de modo que solo tenga que analizarse una vez. Se vería algo como esto:
FunctionPointer foo = ConvertEquationToCode(equation);
....
x = foo(x); // I could then apply the equation to my incoming data like this
Función ConvertEquationToCode sería analizar la ecuación y devolver un puntero a una función que se aplica la matemática apropiada.
La aplicación básicamente escribiría un nuevo código en tiempo de ejecución. ¿Es esto posible con .NET?
duplicado posible de [¿Cómo puedo evaluar una expresión de C# de forma dinámica?] (Http://stackoverflow.com/questions/53844/how-can-i-evaluate-ac-sharp-expression-dynamically) – Ridkuma