참고 : 수식 표현 평가는이 질문의 초점이 아닙니다. .NET에서 런타임에 새 코드를 컴파일하고 실행하려고합니다. 말했다되고 그건 ... 나는 텍스트 상자에 다음과 같이 사용자가 어떤 식을 입력 할 수 있도록하고 싶습니다.NET에서 런타임시 새 코드를 컴파일하고 실행할 수 있습니까?
:
x = x/2 * 0.07914
x = x^2/5
들어오는 데이터 포인트에 적용하는 방정식이있다. 수신 데이터 포인트는 x으로 표시되며 각 데이터 포인트는 사용자 지정 방정식으로 처리됩니다. 나는이 년 전했지만이 모든 계산 방정식의 텍스트를 구문 분석이 필요하기 때문에이 솔루션을 좋아하지 않았다
float ApplyEquation (string equation, float dataPoint)
{
// parse the equation string and figure out how to do the math
// lots of messy code here...
}
당신이 데이터 포인트의 boatload에 처리를하고,이 꽤 소개 간접비. 방정식을 즉석에서 함수로 변환하여 한 번만 구문 분석 할 수 있기를 바랍니다. 그것은 다음과 같이 보일 것입니다 :
FunctionPointer foo = ConvertEquationToCode(equation);
....
x = foo(x); // I could then apply the equation to my incoming data like this
기능 ConvertEquationToCode 방정식을 분석하고 적절한 수학을 적용하는 함수에 대한 포인터를 반환합니다.
앱은 기본적으로 런타임에 새로운 코드를 작성합니다. .NET에서 가능합니까?
가능한 복제 [I 동적으로 C#을 식을 계산할 수 있는가? (http://stackoverflow.com/questions/53844/how-can-i-evaluate-ac-sharp-expression-dynamically) – Ridkuma