【问题标题】:The optimal way to check if a query string is an int?检查查询字符串是否为 int 的最佳方法?
【发布时间】:2009-02-25 19:50:19
【问题描述】:

我的一位同事想到一个问题,检查查询字符串是否为 int 的最佳方法是什么。我建议使用经典的 Int.Parse 并尝试捕获,也建议使用 TryParse。其实我想不出别的办法。有什么想法吗?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    Int32.TryParse 将是您的最佳选择。

    【讨论】:

      【解决方案2】:

      TryParse 可能是您最好的选择,因为它允许字符串的不同格式,并通过布尔值告诉您它是否有效。

      【讨论】:

        【解决方案3】:

        我喜欢 Int32.TryParse。我想你可以使用正则表达式,但我不确定会有什么意义。

        【讨论】:

          【解决方案4】:

          可能不太有用,因为您可能想要实际的 int (尽管它可以扩展来做到这一点)。注意:我不会这样做,但它他没有想到的另一种方式。

          bool isNumeric = true;
          foreach (char c in queryString) {
              if (!char.IsDigit(c)) {
                 isNumeric = false;
                 break;
              }
          }
          

          【讨论】:

            【解决方案5】:

            我更喜欢 TryParse 方法。两者差不多,我相信 TryParse 在方法内部做了一个 try{}catch{},所以我怀疑在执行上会有很大的不同。

            【讨论】:

            • 不,TryParse 绝对不会尝试{}catch{}。它比自己调用 Parse 快得多(对于无效数据)。
            猜你喜欢
            • 2011-05-30
            • 2014-04-30
            • 1970-01-01
            • 2010-12-20
            • 1970-01-01
            • 2012-07-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多