在Convert.ToInt32()函数调用中使用“0”连接是否更好?

时间:2010-03-31 04:58:44

标签: c#

最好使用以下声明

Convert.ToInt32(“0”+ stringValue)

如果没有那么为什么?

我知道使用int.TryParse()函数更好,这更好,但上面的语句呢。

2 个答案:

答案 0 :(得分:5)

比什么更好?

就我个人而言,我认为使用Convert.ToInt32("0" + stringValue)是一种反模式。

它没有提供任何有用的东西,因为:

  • 正整数仍会产生相同的值。
  • 如果你传递一个负数,它就会抛出。
  • 它不会添加任何额外的错误检查
  • 它会创建一个额外的字符串连接,不会用于任何事情,无缘无故地降低性能
  • 无缘无故地增加了额外的复杂性。

直接使用Convert.ToInt32(stringValue)int.TryParse如果您不想进行异常处理。

答案 1 :(得分:1)

唯一可能有用的情况是字符串变量是否为null引用。但是,与零字符连接完全没有意义。由于我们只是在字符串连接执行空检查之后,更好的版本将与空字符串连接,因为它不会因负值而中断:

Convert.ToInt32(String.Empty + stringValue)

更好的解决方案,因为它不进行字符串连接:

Convert.ToInt32(stringValue ?? String.Empty)

更好的解决方案是先检查空值,这样就不必解析已知的字符串了:

stringValue == null ? 0 : Convert.ToInt32(stringValue)