人们一直建议使用Int32.TryParse,但是我发现,在任何字符串(例如“ 4e”)的情况下,它将给我输出0(我将直接打印我的输入),而Int32.Parse将给我一个输出。例外。我看不到使用TryParse的方法吗?任何帮助将不胜感激
答案 0 :(得分:2)
TryParse
和Parse
应该以相同的方式处理有效数字。区别在于它们发出输入无效信号的方式。 Parse
将引发异常,而TryParse
返回一个boolean
,您需要手动处理。
if (!int.TryParse(input, out var result))
{
Console.Write("NOK"); // Don't use result, it will have the default value of 0
}
else
{
Console.Write($"OK {result}"); // Ok, reuslt has the parsed value of input
}
答案 1 :(得分:1)
您可以像这样检查布尔返回值:
string text1 = "x";
int num1;
bool res = int.TryParse(text1, out num1);
if (res == false)
{
// String is not a number.
}