将int.Parse()转换为long并使用long.Parse之间有区别吗?

时间:2011-12-30 15:27:16

标签: c# type-conversion

我偶然发现了一些开发人员使用的代码

fooBar((long)int.Parse(someVariable));

fooBar函数只是等待long作为参数,并将其用于SQL查询。

它与使用long.Parse(...)之间有什么区别吗?

4 个答案:

答案 0 :(得分:4)

是的,long.Parse将处理大于int的数字。所以最好是,除非你想要一个例外,如果这个数字不适合int

此外,从intlong的转换是不必要的,因为存在隐式转换。

答案 1 :(得分:4)

不同之处在于,someVariable表示的值不适合int

答案 2 :(得分:4)

主要区别在于int.Parse,您可以保证int范围内的数字。OverflowException。如果该数字超出该范围,则int.Parse会抛出long.Parselong会很乐意接受它,只要{{1}}中的数字为{{1}}的范围)。

答案 3 :(得分:0)

当你使用long.Parse函数的结果是int64但是当你使用int.Parse时结果是int32。