簡體   English   中英

Visual Studio 2017 中的數學游戲出錯

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

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