当我试图解析的文本框中没有输入任何内容时,应用程序崩溃

App crashes when nothing is entered in the TextBoxes I'm trying to parse

我正在 Visual Studio 为 windows phone 开发应用程序,这是我第一次使用 C# 语言,因为我是一名 Android 开发人员并且如果未输入任何内容,我无法弄清楚为什么我的应用会在按下按钮时崩溃。

如果有人能提供帮助那就太棒了。非常感谢!!

private void sum_Click(object sender, RoutedEventArgs e)
{
    decimal n1 = decimal.Parse(num1.Text);
    decimal n2 = decimal.Parse(num2.Text);
    decimal n3 = decimal.Parse(num3.Text);

    if (n1.Equals(null) || n2.Equals(null) || n3.Equals(null))
    {
        sum1.Text = "Enter something!";
    }
    else
    {
        decimal sum = n1 + n2 + n3;
        String m = Convert.ToString(sum);
        sum1.Text = m;
    }
}

尝试解析空文本字段(或包含无效数据的字段)最有可能引发异常并导致崩溃。此外,decimal.Parse 的结果不会是 null,因此 if/else 块的 if 部分将不会执行。

我建议改用 decimal.TryParse,它允许您在解析失败时执行某些操作(例如显示您的消息)。

private void sum_Click(object sender, RoutedEventArgs e)
{
    decimal n1;
    decimal n2;
    decimal n3;

    if (decimal.TryParse(num1.Text, out n1)
        && decimal.TryParse(num2.Text, out n2)
        && decimal.TryParse(num3.Text, out n3))
    {
        decimal sum = n1 + n2 + n3;
        String m = Convert.ToString(sum);
        sum1.Text = m;
    }
    else
    {
        sum1.Text = "One or more fields has a missing/invalid value.";
    }
}