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

use*_*219 19 c#

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

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

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

use*_*erx 31

如果您希望在空文本框上默认为0(并在格式不正确的输入上抛出异常):

int i = string.IsNullOrEmpty(Textbox1.Text) ? 0 : int.Parse(Textbox1.Text);
Run Code Online (Sandbox Code Playgroud)

如果您希望使用任何格式不正确的输入默认为0:

int i;
if (!int.TryParse(Textbox1.Text, out i)) i = 0;
Run Code Online (Sandbox Code Playgroud)

  • 第二个代码片段表明 TryParse 在返回 false 时将保持先前的值不变,但会将其归零。最好写'int i; if (!int.TryParse(Textbox1.Text, out i)) i = 0;` 或者有人认为以下方法可行 `int i = -1; int.TryParse(Textbox1.Text, out i);` (2认同)

Ry-*_*Ry- 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.
}
Run Code Online (Sandbox Code Playgroud)


xan*_*ded 7

if(!String.IsNullOrEmpty(Textbox1.text))
    var number = int.Parse(Textbox1.text);
Run Code Online (Sandbox Code Playgroud)

甚至更好:

int number;

int.TryParse(Textbox1.Text, out number);
Run Code Online (Sandbox Code Playgroud)


Vic*_*lin 5

试试这个:

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


Dee*_*ath 5

如果输入是数字或空字符串,则这将起作用。如果字符串为空,它将返回零,否则将返回实际数字。

int.Parse("0"+Textbox1.Text)
Run Code Online (Sandbox Code Playgroud)