[英]Having an error in Math Game in Visual Studio 2017
我在下面做了一個數學游戲程序,但是當按下開始按鈕時它不起作用......轉換區域上的消息錯誤(顯示 p、q、r); “在 mscorlib.dll 中發生了類型為 'System.FormatException' 的未處理異常附加信息:輸入字符串的格式不正確。” 如何修改我的代碼?
private void buttonStart_Click(object sender, RoutedEventArgs e)
{
Random random = new Random();
int a = random.Next(0, 100);
int b = random.Next(0, 100);
int c = random.Next(0, 100);
int d = random.Next(0, 100);
int f = random.Next(0, 100);
int g = random.Next(0, 100);
labelOne.Content = "1." + a + " + " + b + " = ";
labelTwo.Content = "2." + c + " - " + d + " = ";
labelThree.Content = "3." + f + " * " + g + " = ";
int score = 0;
int p = int.Parse(textBoxOne.Text);
int q = int.Parse(textBoxTwo.Text);
int r = int.Parse(textBoxThree.Text);
if (p == a + b)
{
score = score + 1;
}
else score = score;
if (q == c - d)
{
score = score + 1;
}
else score = score;
if (r == g * f)
{
score = score + 1;
}
else score = score;
}
當您打算將字符串或任何對象轉換為值類型(如(double、int、long、boolean)時,您需要檢查並確保字符串是數字。當然,這將是一項具有挑戰性和乏味的工作。 幸運的是,C# 提供了一些漂亮的轉換方法,它們也不會觸發異常。
int intValue = 0 ;
int.TryParse(someString,out intValue);
我認為您的代碼中最有問題的行是那三行。
int p = int.Parse(textBoxOne.Text);
int q = int.Parse(textBoxTwo.Text);
int r = int.Parse(textBoxThree.Text);
因為他們沒有檢查機制來查看傳遞的值是否為數字。
所以我建議按以下方式轉換這些值:
int p=0 ;
int q=0;
int r=0 ;
int.TryParse(textBoxOne.Text,out p);
int.Parse(textBoxTwo.Text,out q);
int.Parse(textBoxThree.Text, out r);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.