如何解析空字符串? int.Parse(Textbox1.text)
給我一個錯誤:int.Parse,輸入字符串格式不正確
Input string was not in a correct format.
System.FormatException: Input string was not in a correct format.
如果文本爲空(Textbox1.text = ''
),它拋出這個錯誤。我明白這個錯誤,但不知道如何解決這個問題。
如何解析空字符串? int.Parse(Textbox1.text)
給我一個錯誤:int.Parse,輸入字符串格式不正確
Input string was not in a correct format.
System.FormatException: Input string was not in a correct format.
如果文本爲空(Textbox1.text = ''
),它拋出這個錯誤。我明白這個錯誤,但不知道如何解決這個問題。
如果你正在尋找違約在空文本框中爲0(並在格式不正確的輸入上拋出異常):
int i = string.IsNullOrEmpty(Textbox1.Text) ? 0 : int.Parse(Textbox1.Text);
如果你正在尋找默認爲0任何格式不正確輸入:
int i;
if (!int.TryParse(Textbox1.Text, out i)) i = 0;
第二個代碼片段表明,TryParse會在返回false時保持原來的值不變,但它會將其替換爲零。更好地寫'int i; if(!int.TryParse(Textbox1.Text,out i))i = 0;'或者某人認爲以下內容會起作用:int i = -1; int.TryParse(Textbox1.Text,out i);' – Firo 2015-01-26 07:33:36
@Firo - Google point。更新! – userx 2015-01-29 15:51:39
'out i' - 如果未解析,它將被分配給'0',所以對於零檢查和分配是額外的。 – Qwertiy 2016-05-15 15:09:38
if(!String.IsNullOrEmpty(Textbox1.text))
var number = int.Parse(Textbox1.text);
甚至更好:
int number;
int.TryParse(Textbox1.Text, out number);
嗯,你想要什麼的結果是?如果你只是想驗證輸入,使用int.TryParse
代替:
int result;
if (int.TryParse(Textbox1.Text, out result)) {
// Valid input, do something with it.
} else {
// Not a number, do something else with it.
}
試試這個:
int number;
if (int.TryParse(TextBox1.Text, out number))
{
//Some action if input string is correct
}
你可以用簡單的try/catch
包起來......
可怕的方式來實現這一點。始終驗證輸入 - 不要計劃例外。 – Ryan 2012-02-21 04:37:05
這是一個有效的選擇,但你應該清楚,你只想趕catch(System.FormatException)' – 2012-02-21 04:37:36
它的一個骯髒和快速的解決方案... – SolidSnake 2012-02-21 04:43:44
你也可以使用擴展方法是這樣的:
public static int? ToNullableInt32(this string s)
{
int i;
if (Int32.TryParse(s, out i)) return i;
return null;
}
這裏的參考:How to parse a string into a nullable int in C# (.NET 3.5)
你止跌在嘗試解析它之前,檢查字符串是否爲空。如果(!string.IsNullOrEmpty(Textbox1.Text))。顯然這將仍然給你一個錯誤,如果字符串不是一個數字,所以添加一些驗證輸入 – SCB 2012-02-21 04:35:41