论Convert.ToInt32,int.Parse与int的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tigaobansongjiahuan8/article/details/88020949

前言

  这几天在学习的时候,看到了一些内容,突然联想到了这个知识点,感觉需要做一下区分,进行一些整理,以便日后遇到,还要去进行了解,现在整理一下,也算是未雨绸缪吧!

颗粒归仓

(1)Convert.ToInt32("")和int.Parse("")都会产生异常,两个方法的参数不能为空字符串。

(2)Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:

    ①Convert.ToInt32 参数为 null 时,返回 0;int.Parse 参数为 null 时,抛出异常,只转换整型时,效率较高。

    ②Convert.ToInt32 参数为 “” 时,抛出异常;int.Parse 参数为 “” 时,抛出异常。

    ③Convert.ToInt32 可以转换的类型(Object)较多;int.Parse 只能转换数字类型的字符串。

    ④int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0。

(3)Convert.ToInt32(double value)

    ①如果 value 为两个整数中间的数字,那么返回二者中的偶数;即 3.5转换为4,4.5 转换为 4,而 5.5 转换为 6。 不过4.6可以转换为5,4.4转换为4(类似于四舍五入)

    ② int.Parse(“4.5”),直接报错:“输入字符串的格式不正确”.

    ③ int(4.6) = 4,Int转化其他数值类型为Int时没有四舍五入,强制转换

    ④int.Parse是转换String为int,Convert.ToInt32是转换继承自Object的对象为int的.你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.

简单总结一下:

①Convert.ToInt32的参数偏多,转换Object类型的;而Int.Parse只能转换String类型的

②Parse就是把String转换成int,char,double等等,就是.Parse(int)括号中一定要是int

③Convert可以提供多种类型的转换,也就是Convert()的括号中可以有很多的类型(包括int,string等)

互动交流

  进行了一番总结之后,瞬间感觉到有一种如释重负的感觉,身心都变得轻松了,在没有总结之前,对这一部分的内容总是一知半解,知道用它,但是为什么要这样用?在什么情况下这样用?这几种应该怎样区分来用?现在终于弄清楚了,以后再有关于这方面的用法的时候,自己就清楚是怎么一回事儿了,不至于用的时候也迷茫,少年们,加油吧,相信自己,只有想不到的,没有自己做不到的!

猜你喜欢

转载自blog.csdn.net/tigaobansongjiahuan8/article/details/88020949