【问题标题】:Having an error in Math Game in Visual Studio 2017Visual Studio 2017 中的数学游戏出错
【发布时间】:2018-08-05 00:30:49
【问题描述】:

我在下面制作了一个数学游戏程序,但是当按下开始按钮时它不起作用...转换区域(显示 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;

    }

【问题讨论】:

  • 你很可能给Parse一个非数字字符串。您需要在解析输入之前清理/检查输入,或捕获异常。
  • 代码运行时textBoxOne.TexttextBoxTwo.TextTextBoxThree.Text的内容是什么?
  • 请添加语言标签
  • @TZHX 用户可以在这些文本框中输入每个公式的答案。
  • @LưuVĩnhPhúc 好吧,我做到了

标签: c# visual-studio math


【解决方案1】:

当您打算将字符串或任何对象转换为值类型(如(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);

【讨论】:

    猜你喜欢
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    相关资源
    最近更新 更多