我正在做一個非常容易的任務。 我有一個文本框和一個按鈕,如果用戶填寫一個數字,它會檢查它是否是正確的數字。現在我想確保用戶輸入是一個數字,如果不是那麼我想要一個消息框出現,要求填寫一個數字。我做了下面的代碼,但是當我在文本框中填寫一個字母時,它給了我一個錯誤。爲什麼?!int.TryParse我做錯了什麼?
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");
}
}
錯誤是由於'Convert.ToInt32',你不需要,只是評論說出來。如果轉換失敗,Convert.ToInt32會拋出異常。 – Habib
這是'Convert.ToInt32'。爲什麼在檢查前轉換?請注意,如果你傳入一個字符串,'Convert.ToInt32'和'int.Parse'基本上是一樣的。當然'int.TryParse'就是這樣做的,不會拋出異常。 – juharr
可能會有點新奇,但如果我做number =(numberTb.text)它將不會接受那種代碼 –