C# Parse与Int32.TryParse

C# Parse与Int32.TryParse,c#,input,C#,Input,人们一直建议使用Int32.TryParse,但我发现,对于任何字符串(如4e),它都会给我输出0i,我会直接打印输入,而Int32.Parse会给出一个异常。使用TryParse有我看不到的一面吗?任何帮助都将不胜感激TryParse和Parse应该以同样的方式处理有效数字。区别在于它们发出输入无效信号的方式。Parse将抛出一个异常,而TryParse返回一个需要手动处理的布尔值 if (!int.TryParse(input, out var result)) { Console.

人们一直建议使用Int32.TryParse,但我发现,对于任何字符串(如4e),它都会给我输出0i,我会直接打印输入,而Int32.Parse会给出一个异常。使用TryParse有我看不到的一面吗?任何帮助都将不胜感激

TryParse和Parse应该以同样的方式处理有效数字。区别在于它们发出输入无效信号的方式。Parse将抛出一个异常,而TryParse返回一个需要手动处理的布尔值

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
}

您可以像这样检查布尔返回值:

  string text1 = "x";
  int num1;
  bool res = int.TryParse(text1, out num1);
  if (res == false)
  {
      // String is not a number.
  }

不要忽略布尔返回值。