Поскольку textBox2.Text
имеет тип string
, ваш параметр b
является строкой "3", а не числом 3. Если один параметр является строкой, а другой - числом - NCalc (который также работает со строками) преобразует число в строку, как и сам C #:
string s = "3" + 1; // 31
Таким образом, чтобы решить эту проблему, преобразуйте строку в число (конечно, стоит сначала проверить, можно ли ее преобразовать):
int b;
if (int.TryParse(textBox2.Text, out b)) {
Expression expr = new Expression(textBox3.Text);
expr.Parameters["a"] = 1;
expr.Parameters["b"] = b;
textBox1.Text = expr.Evaluate().ToString();
}