簡體   English   中英

當我嘗試解析的文本框中未輸入任何內容時,應用程序崩潰

[英]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.";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM