黑马程序员技术交流社区

标题: int.Parse(string);和 Convert.ToInt32(string);有什么区别 [打印本页]

作者: 苏冉    时间: 2013-3-27 15:29
标题: int.Parse(string);和 Convert.ToInt32(string);有什么区别
视频上老师说  int.Parse(string);   和  Convert.ToInt32(string);   的结果一样,那为什么要给两个作用一样的语句?他们俩有什么别的区别吗?
作者: 许正龙    时间: 2013-3-27 17:15
Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:
Convert.ToInt32 参数为 null 时,返回 0; int.Parse 参数为 null 时,抛出异常。
作者: 邓建军    时间: 2013-3-27 17:41
Convert.ToInt32() 调用了int.Parse()方法,Convert.ToInt32() 是万能转换,可转换将byte short long double float char string enum datetime bool  object等转换成int,而int.Pase()只能将string转换成int
作者: 张振    时间: 2013-3-27 17:48
视频中讲解的是两个  出入结果是一样的,但 Convert.ToInt32 内部调用了 int.Parse(所以可以看出Convert.ToInt32 可以转换的类型多于int.Parse类型; 而int.Parse 只能转换数字类型的字符串 )
Convert.ToInt32 参数为 null 时,返回 0;
int.Parse 参数为 null 时,抛出异常。
网上有更详细的资料

作者: 庞登升    时间: 2013-3-27 18:08
我也查了一下网上的资料,一起学习下。总结有这几点:
1。Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。
2。Convert这个方法,如果后面的参数为小数,则取靠近偶数的那个整数,比如4.5=4,6.5=6
      int.Parse("4.5") 直接报错:"输入字符串的格式不正确".
3。Parse就是把String转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string.
   Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string).

4。最后一点,Parse效率比较高,具体你再上网看看


作者: 曾志军    时间: 2013-3-27 18:14
我是来学知识的
作者: wdj_student    时间: 2013-3-27 18:24
Convert.ToInt32()内部调用了int.Parse()方法,可以通过反编译工具查看,Convert.ToInt32() 可以转换的类型比较多,而int.Parse()方法只能将字符串数字转换成整型
,一般情况下就用Convert.ToInt32吧
作者: 郑丹丹1990    时间: 2013-3-28 13:51
Convert.ToInt32(string);  有时也许会出现bug.
此时有int.Parse(string);   就不会出现bug.
至于更具体的原因可以baidu下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2