int.TryParse与其他用于确定char是否包含int的方法

时间:2014-02-26 14:20:25

标签: c# tryparse

使用char数据类型时,有任何理由应该使用int.TryParse

int.TryParse(inputChar.ToString(), NumberStyles.Integer, 
                             CultureInfo.InvariantCulture, out curNum)

VS

inputChar - '0'

检查结果是否在0-9之间?

3 个答案:

答案 0 :(得分:1)

如果您想检查char是否为数字,您应该使用Char.IsDigit

if (Char.IsDigit(inputChar))
{ 
    // ...
}

答案 1 :(得分:0)

嗯, I 总是使用TryParse

的两个原因
  1. 使用经过良好测试的库函数总是比重新发明轮子好。
  2. 美国境外的世界不会说“ASCII” - 因此可能会出现0的字符代码不是数字最小的情况。在那种情况下'9' - '0' != 9;。这是可能是。而且因为我太懒了谷歌这个我在安全方面使用TryParse: - )

答案 2 :(得分:-1)

仅关于代码清晰度。 int.TryParse明确说明其意图 - 如果可能,我想将字符串解析为数字。它相对快速和安全。

如果您发现自己陷入TryParse,您可以随时编写自己的解析。在某些情况下,它可以节省大量时间。例如,我在解析DBF时已经完成了这样的实现,否则会导致从解析字节到字符串以及字符串到整数的大量开销。直接从流转换为int节省了大量的分配和时间。

毕竟,如果你不想使用内置方法,为什么要使用.NET呢?为什么不在机器代码中写一切? :))