我如何解析空字符串? int.Parse(Textbox1.text)
给了我一个错误:
输入字符串的格式不正确 System.FormatException:输入字符串的格式不正确。
如果文本为空(Textbox1.text = ''
),则会抛出此错误。我理解这个错误,但不知道如何纠正这个错误。
答案 0 :(得分:30)
如果您希望在空文本框中默认为0(并在格式不正确的输入上抛出异常):
int i = string.IsNullOrEmpty(Textbox1.Text) ? 0 : int.Parse(Textbox1.Text);
如果您希望默认为0且输入格式不正确:
int i;
if (!int.TryParse(Textbox1.Text, out i)) i = 0;
答案 1 :(得分:14)
那么,你想要结果是什么?如果您只想验证输入,请改用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.
}
答案 2 :(得分:7)
if(!String.IsNullOrEmpty(Textbox1.text))
var number = int.Parse(Textbox1.text);
甚至更好:
int number;
int.TryParse(Textbox1.Text, out number);
答案 3 :(得分:5)
试试这个:
int number;
if (int.TryParse(TextBox1.Text, out number))
{
//Some action if input string is correct
}
答案 4 :(得分:2)
你也可以使用这样的扩展方法:
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)
答案 5 :(得分:0)
如果输入的是数字或空字符串,则可以使用。如果字符串为空,它将返回零,否则将返回实际数字。
int.Parse("0"+Textbox1.Text)
答案 6 :(得分:-1)
你可以用简单的try/catch
...