Момчета, работя върху система, която оценява низови математически изрази.
моя клас да извърши изчислението
public Double Calculate(string argExpression)
{
//get the user passed string
string ExpressionToEvaluate = argExpression;
//pass string in the evaluation object declaration.
Expression z = new Expression(ExpressionToEvaluate);
//command to evaluate the value of the **************string expression
var result = z.Evaluate();
Double results = Convert.ToDouble(result.ToString());
return results;
}
И моите телефонни кодове.
Double Finalstat = calculator.Calculate(UserQuery);
Досега изражението ми беше като
4 + 5 + 69 * (100*3)
По време на тестването обаче открих, че изразът може също да бъде изкривен (тъй като е създаден от потребителя). За неща като
45+99abs - 778anv
Така че исках да знам дали има начин за валидиране на създадения от потребителя (израз), преди да бъде изпратен за оценка в класа?
string ExpressionToEvaluate = argExpression;
просто направетеExpression z = new Expression(argExpression);
- person dav_i   schedule 06.12.2013