Int32.Parse与Int32.TryParse

时间:2018-10-10 10:09:06

标签: c# input

人们一直建议使用Int32.TryParse,但是我发现,在任何字符串(例如“ 4e”)的情况下,它将给我输出0(我将直接打印我的输入),而Int32.Parse将给我一个输出。例外。我看不到使用TryParse的方法吗?任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

TryParseParse应该以相同的方式处理有效数字。区别在于它们发出输入无效信号的方式。 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.
  }