【问题标题】:Int32.Parse vs Int32.TryParse [duplicate]Int32.Parse 与 Int32.TryParse [重复]
【发布时间】:2019-03-15 05:15:07
【问题描述】:

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

【问题讨论】:

标签: c# input


【解决方案1】:

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

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

【讨论】:

    【解决方案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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      相关资源
      最近更新 更多