A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

视频上老师说  int.Parse(string);   和  Convert.ToInt32(string);   的结果一样,那为什么要给两个作用一样的语句?他们俩有什么别的区别吗?

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

7 个回复

正序浏览
Convert.ToInt32(string);  有时也许会出现bug.
此时有int.Parse(string);   就不会出现bug.
至于更具体的原因可以baidu下
回复 使用道具 举报
Convert.ToInt32()内部调用了int.Parse()方法,可以通过反编译工具查看,Convert.ToInt32() 可以转换的类型比较多,而int.Parse()方法只能将字符串数字转换成整型
,一般情况下就用Convert.ToInt32吧
回复 使用道具 举报
我是来学知识的
回复 使用道具 举报
我也查了一下网上的资料,一起学习下。总结有这几点:
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效率比较高,具体你再上网看看

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
视频中讲解的是两个  出入结果是一样的,但 Convert.ToInt32 内部调用了 int.Parse(所以可以看出Convert.ToInt32 可以转换的类型多于int.Parse类型; 而int.Parse 只能转换数字类型的字符串 )
Convert.ToInt32 参数为 null 时,返回 0;
int.Parse 参数为 null 时,抛出异常。
网上有更详细的资料
回复 使用道具 举报
Convert.ToInt32() 调用了int.Parse()方法,Convert.ToInt32() 是万能转换,可转换将byte short long double float char string enum datetime bool  object等转换成int,而int.Pase()只能将string转换成int
回复 使用道具 举报
Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:
Convert.ToInt32 参数为 null 时,返回 0; int.Parse 参数为 null 时,抛出异常。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马