C# WindowsPhone8计算器

C# WindowsPhone8计算器,c#,windows,windows-phone-7,visual-studio-2012,C#,Windows,Windows Phone 7,Visual Studio 2012,有谁能告诉我为什么这段代码会中断,以及如何在用C#编写的Windows Phone 8 Emulator中更正它,显示错误: 在mscorlib.ni.dll中发生了类型为System.FormatException的异常,但未在用户代码中处理 private void ClickMeButton_Click(object sender, RoutedEventArgs e) { First_text.Visibility = Visibility.Vis

有谁能告诉我为什么这段代码会中断,以及如何在用C#编写的Windows Phone 8 Emulator中更正它,显示错误: 在
mscorlib.ni.dll
中发生了类型为
System.FormatException
的异常,但未在用户代码中处理

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; } 私有无效ClickMe按钮\单击(对象发送者,路由目标) { First_text.Visibility=可见性.Visibility; Second_text.Visibility=可见性.Visibility; BannerTextBlock.Text=Convert.ToString(Convert.ToInt32(First_Text.Text)+Convert.ToInt32(Second_Text.Text)); First_text.text=String.Empty; Second_text.text=String.Empty; }
First\u text.text
Second\u text.text
不包含整数,因此您的
Convert.ToInt32
方法会抛出
FormatException

有多种方法可以修复此问题,例如在用户键入号码时验证文本框,或将呼叫放入
Try…Catch
块。或者,只需使用。比如说

int firstTextBox;
int secondTextBox;

if (Int32.TryParse(First_text.Text, out firstTextBox) && Int32.TryParse(Second_Text.Text, out secondTextBox))
{
    BannerTextBlock.Text = (firstTextBox + secondTextBox).ToString();
}

它是否显示错误或引发异常?空格不解析为0(可能是造成混淆的原因)。