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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 guo329838627 于 2013-9-26 11:10 编辑

             1.“Convert”与“Parse”之间有啥子区别。             2.哪个效率比较高?  

评分

参与人数 1技术分 +1 黑马币 +1 收起 理由
茹化肖 + 1 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
这两个方法我们经常在使用,但是它们之间有什么区别呢,下面的代码让你比较清晰的明白区别所在:

   1:              string convertToInt = "12";
   2:              string nullString = null;
   3:              string maxValue = "32222222222222222222222222222222222";
   4:              string formatException = "12.32";
   5:   
   6:              int parseResult;
   7:   
   8:              // It will perfectly convert interger
   9:              parseResult = int.Parse(convertToInt);
  10:   
  11:              // It will raise Argument Null Exception
  12:              parseResult = int.Parse(nullString);
  13:   
  14:              //It willl raise Over Flow Exception
  15:              parseResult = int.Parse(maxValue);
  16:   
  17:              //It will raise Format Exception
  18:              parseResult = int.Parse(formatException);
  19:   
  20:   
  21:              //For Convert.ToInt32
  22:   
  23:              //It will perfectly convert integer
  24:              parseResult = Convert.ToInt32(convertToInt);
  25:   
  26:              //It will ouput as 0 if Null string is there
  27:              parseResult = Convert.ToInt32(nullString);
  28:   
  29:              //It will raise Over Flow Exception
  30:              parseResult = Convert.ToInt32(maxValue);
  31:   
  32:              //It will raise Format Exception
  33:              parseResult = Convert.ToInt32(formatException);

           区别就是Convert.ToInt32(string) 方法遇到空时会返回0,而Int.Parse则会Throw Exception. 我们还可以使用Int32.TryParse方法更加安全。
希望对你有所帮助

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  Parse只能讲string类型的数据转换为指定数据,如果传输的string类型无法转换成目标类型就会报错,传入的不是string类型,无法通过编译。
  Convert则可以转换更多类型,Convert有自己独特的一套算法来进行类型转换,如Convert.ToInt32(object) 当传如的是null的时候,就会返回0,如果是字符,如‘a’的时候
则会返回对应的ASCII码,当然非数字字符串传入也是会报错的。
   应该Parse的效率更高,因为算法简单。缺点是只能转换string类型的数据
   而Convert能支持的转换类型更加丰富。
回复 使用道具 举报
一、区别:Convert.ToInt32()如果是参数是object或string的时候也是调用int.Parse来转换的,对于其它的如float,double等等只是检查一下数值范围然后return (int)value;char类型直接返回,bool类型真返回1,假返回0;
二、int.Parse效率高,因为用Convert.ToInt32()还是要调用int.Parse的,所以不如直接调用int.Parse的效率高
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马