任何人都可以告诉我为什么这个代码破坏以及如何在用C#编写的Windows Phone 8 Emulator中纠正它,显示错误:
System.FormatException
中出现mscorlib.ni.dll
类型的例外,但未在用户代码中处理
private void ClickMeButton_Click(object sender, RoutedEventArgs e) { First_text.Visibility = Visibility.Visible; Second_text.Visibility = Visibility.Visible; BannerTextBlock.Text = Convert.ToString(Convert.ToInt32(First_text.Text) + Convert.ToInt32(Second_text.Text)); First_text.Text = String.Empty; Second_text.Text = String.Empty; }
答案 0 :(得分:1)
First_text.Text
或Second_text.Text
不包含整数,因此Convert.ToInt32
方法会抛出FormatException
。
有多种方法可以修复它,例如在用户输入数字时验证文本框或将调用放在Try...Catch
块中。或者,只需使用Int32.TryParse。例如
int firstTextBox;
int secondTextBox;
if (Int32.TryParse(First_text.Text, out firstTextBox) && Int32.TryParse(Second_Text.Text, out secondTextBox))
{
BannerTextBlock.Text = (firstTextBox + secondTextBox).ToString();
}