所以我创建了一个名为Something(string text)
的函数,需要string
。
现在我有一个onclick执行Something(textBox1.Text)
的按钮。
我希望textBox.Text
能够像"test " + (5+2).toString()
现在该函数将获得""test " + (5+2).toString()"
(例如)作为输入,它将把它视为一个大字符串。
我想要它做的是获取test 7
而不是像一个大字符串那样对待它。
我将如何做到这一点?
提前致谢! -Tim
编辑:
这将是我的职责:
private void Something(string text)
{
MessageBox.Show(text);
}
如果我那么做
Something(textBox1.Text);
当textBox1看起来像
时__________________
| "hi " + "test" |
------------------
它会生成一个说"hi" + "test"
而不是hi test
的MessageBox。
答案 0 :(得分:1)
您需要在文本框中编译字符串并运行代码,然后再将其提供给Something
- 方法。
查看Roslyn,轻松评估文本框中的表达式。
然后你会得到:
string result = await CSharpScript.EvaluateAsync<string>("\"test \" + (5+2).toString()");
Something(result);
答案 1 :(得分:1)
我认为你必须以这种方式尝试。 res包含算术运算的答案。
doSomething(string text)
{
DataTable dt = new DataTable();
string[] operators = { "+", "*", "/", "-" };
string[] data = text.Split(' ');
for(int i=0; i< data.Length; i++)
{
if((operators.Any(data[i].Contains)))
{
MessageBox.Show(data[i].ToString());
var res = dt.Compute(data[i],"");
}
}
}