!int.TryParse我做错了什么?

时间:2017-09-07 17:00:05

标签: c# winforms

我正在轻松完成任务。 我有一个文本框和一个按钮,如果用户填写了一个数字,它会检查它是否是正确的数字。现在我想确保用户输入是一个数字,如果不是,那么我想要一个要求填写数字的消息框。我做了以下代码,但是当我在文本框中填写一封信时,它给了我一个错误。为什么呢?

        private void guessBtn_Click(object sender, EventArgs e)
    {
        int number
        number = Convert.ToInt32(numberTb.Text);

        if (!int.TryParse(numberTb.Text, out number)){
            MessageBox.Show("This isn't a number");
        } else if (number == 3) {
            MessageBox.Show("Correct!");
        } else if (number < 3) {
            MessageBox.Show("Incorrect, number must be higher");
        } else {
            MessageBox.Show("Incorrect, number must be lower");
        }
    }

1 个答案:

答案 0 :(得分:2)

TryParse不会返回字符串是否可以转换为整数。它实际上进行转换,并将结果放在out参数中。

因此,在致电Convert.ToInt32之前,您不需要TryParse来电。

您遇到异常,因为如果字符串无效,Convert.ToInt32 抛出异常。基本上,您的程序在Convert.ToInt32之前因TryParse而终止。

因此,请删除Convert.ToInt32行。