int.Parse,输入字符串格式不正确

时间:2012-02-21 04:32:31

标签: c#

我如何解析空字符串? int.Parse(Textbox1.text)给了我一个错误:

  

输入字符串的格式不正确   System.FormatException:输入字符串的格式不正确。

如果文本为空(Textbox1.text = ''),则会抛出此错误。我理解这个错误,但不知道如何纠正这个错误。

7 个答案:

答案 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 ...

来包装它