将int.Parse()类型强制转换为long类型和使用long. parse类型有区别吗?

本文关键字:类型 long parse 有区别 转换 Parse int | 更新日期: 2023-09-27 18:19:02

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

的代码
fooBar((long)int.Parse(someVariable));

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

与使用long.Parse(...)有什么区别?

将int.Parse()类型强制转换为long类型和使用long. parse类型有区别吗?

是的,long.Parse将处理大于int的数字。所以它是可取的,除非你想要一个异常,如果数字不能适合int

也没有必要从int强制转换到long,因为存在隐式强制转换。

区别在于如果someVariable代表的值不能放入int

主要区别在于,使用int.Parse,您几乎可以保证在int的范围内获得一个数字。如果数字在该范围之外,int.Parse将抛出一个OverflowException(而long.Parse将高兴地接受它,只要数字在long的范围内)。

解析函数的结果是int64,但是当你使用int时。解析结果为int32