我正在为Visual Studio中的Windows手机开发应用程序,这是我第一次使用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;
}
}
答案 0 :(得分:6)
尝试解析空文本字段(或包含无效数据的字段)最有可能引发异常并导致崩溃。此外,decimal.Parse
的结果不会是null
,因此if
块的if/else
部分不会执行。
我建议改为使用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.";
}
}