int.Parse,inputstring的格式不正确

我将如何parsing一个空string? int.Parse(Textbox1.text)给了我一个错误:

inputstring的格式不正确。
System.FormatException:inputstring的格式不正确。

如果文本为空( Textbox1.text = '' ),则会引发此错误。 我明白这个错误,但不知道如何解决这个问题。

如果你想在一个空的文本框中默认为0(并且在格式不正确的input上抛出一个exception):

 int i = string.IsNullOrEmpty(Textbox1.Text) ? 0 : int.Parse(Textbox1.Text); 

如果你想要默认为0格式不好的input:

 int i; if (!int.TryParse(Textbox1.Text, out i)) i = 0; 

那么,你想要什么结果呢? 如果您只想validationinput,请改用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. } 
 if(!String.IsNullOrEmpty(Textbox1.text)) var number = int.Parse(Textbox1.text); 

甚至更好:

 int number; int.TryParse(Textbox1.Text, out number); 

尝试这个:

 int number; if (int.TryParse(TextBox1.Text, out number)) { //Some action if input string is correct } 

你也可以使用这样的扩展方法:

 public static int? ToNullableInt32(this string s) { int i; if (Int32.TryParse(s, out i)) return i; return null; } 

这里是参考: 如何parsing一个string到一个可空的int在C#中(.NET 3.5)

你可以用简单的try/catch来包装它…