C# - 如果用户输入错误,如何验证计算器的用户输入?

C# - How to validate the user input for a calculator if the user inputs a wrong input?

我正在用 C# 制作一个简单的计算器应用程序,我 运行 遇到一个问题,如果用户输入例如“4**3”,程序就会崩溃。有没有什么方法可以验证输入,以便在用户输入无法计算的内容时进行标记?

string sum = textDisplay.Text;
DataTable dt = new DataTable();
var ans = dt.Compute(sum, "");

按照 Tim 的建议,使用 Try/Catch 块。显然,这会告诉您尝试后是否失败,但异常确实为您提供了一些信息:

string operation = "4**3";
DataTable dt = new DataTable();
try
{
    var ans = dt.Compute(operation, "");
    MessageBox.Show(ans.ToString());
}
catch (Exception ex)
{
    MessageBox.Show("Operation: " + operation + Environment.NewLine + ex.Message, "Operation Failed");
}  

以上产生:

如果你想知道在调用 Compute() 之前它是否会失败,你必须编写自己的语法分析器......这有点否定了使用 Compute() 的全部意义首先。