【发布时间】:2013-11-25 22:18:31
【问题描述】:
在我的 VB.Net 4.5 WPF 应用程序中,我有 3 个文本框供用户输入以下内容:
- txtFirstNumber
- txt运算符
- txtSecondNumber
问题:我发现我无法将运算符字符串转换为实际的数学运算符,因为运算符没有数据类型。
我无法使用 + 或 & 或 val 或 eval 来计算:txtFirstNumber txtOperator txtSecondNumber
例如:如果用户输入 12 作为 firstNumber,+ 作为运算符,5 作为 secondNumber,那么我想自动计算 12 + 5 并将答案放在名为 CalculateAnswer 的标签中。
如果用户输入不同的内容,我希望仍然进行计算。即使他们输入双精度数作为其中一个数字。
所以我需要帮助!这是我的代码:
Dim CalcAnswer As Double
Try
Dim first As Double = CDbl(txtFirstNumber.Text)
Dim op As String = txtOperator.Text
Dim second As Double = CDbl(txtSecondNumber.Text)
CalcAnswer = Eval(first & op & second)
CalculateAnswer.Content = CStr(CalcAnswer)
Catch CalcError As Exception
MsgBox(CalcError.Message)
End Try
提前致谢!
【问题讨论】:
-
你的
Eval()函数是什么样的? -
另外:您可能需要使用 Decimal 而不是 Double。
-
谢谢 Joel - 我没有 Eval 函数。谷歌告诉我,Eval 是 Evaluate 的缩写,它已经被定义了。但它不起作用。
-
Eval()不是 .Net 的一部分,并且有充分的理由(Eval() 函数是巨大的安全漏洞)。这部分你必须自己写。
标签: wpf vb.net operator-keyword type-conversion