我正在轻松完成任务。 我有一个文本框和一个按钮,如果用户填写了一个数字,它会检查它是否是正确的数字。现在我想确保用户输入是一个数字,如果不是,那么我想要一个要求填写数字的消息框。我做了以下代码,但是当我在文本框中填写一封信时,它给了我一个错误。为什么呢?
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");
}
}
答案 0 :(得分:2)
TryParse
不会返回字符串是否可以转换为整数。它实际上进行转换,并将结果放在out
参数中。
因此,在致电Convert.ToInt32
之前,您不需要TryParse
来电。
您遇到异常,因为如果字符串无效,Convert.ToInt32
将抛出异常。基本上,您的程序在Convert.ToInt32
之前因TryParse
而终止。
因此,请删除Convert.ToInt32
行。