如何在C#中将字符串转换为变量名?

时间:2017-11-14 21:07:35

标签: c# asp.net asp.net-mvc

我有四个预定义的输入关键字。 (例如num1,num2等)基于这些关键字,用户将在文本框中定义公式。 例: num1 + num2 * num3 *(num3-num1)

由于此输入将从文本框中获取,因此它将是一个字符串。 如何将这些关键字从字符串转换为变量名称并在我的代码中执行公式?

我在其他帖子中找不到合适的答案。

感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:0)

试用DynamicExpresso nuget包 - https://www.nuget.org/packages/DynamicExpresso.Core/

然后你可以做类似的事情:

var s = "num1 + num2 * num3 * (num3-num1)";
var interpreter = new Interpreter();

int num1 = 11;
int num2 = 12;
int num3 = 13;

var parameters = new[]
{
    new Parameter("num1", num1),
    new Parameter("num2", num2),
    new Parameter("num3", num3)
};
var result = interpreter.Eval(s, parameters);

Console.WriteLine(result); // 323

答案 1 :(得分:-2)