黑马程序员技术交流社区
标题:
关于类型转换 “Convert” 与 “Parse” 的区别,哪个效率高?
[打印本页]
作者:
guo329838627
时间:
2013-9-25 19:58
标题:
关于类型转换 “Convert” 与 “Parse” 的区别,哪个效率高?
本帖最后由 guo329838627 于 2013-9-26 11:10 编辑
1.“Convert”与“Parse”之间有啥子区别。 2.哪个效率比较高?
作者:
0和1,编程世界
时间:
2013-9-25 20:17
这两个方法我们经常在使用,但是它们之间有什么区别呢,下面的代码让你比较清晰的明白区别所在:
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方法更加安全。
希望对你有所帮助
作者:
274997322
时间:
2013-9-26 00:14
Parse只能讲string类型的数据转换为指定数据,如果传输的string类型无法转换成目标类型就会报错,传入的不是string类型,无法通过编译。
Convert则可以转换更多类型,Convert有自己独特的一套算法来进行类型转换,如Convert.ToInt32(object) 当传如的是null的时候,就会返回0,如果是字符,如‘a’的时候
则会返回对应的ASCII码,当然非数字字符串传入也是会报错的。
应该Parse的效率更高,因为算法简单。缺点是只能转换string类型的数据
而Convert能支持的转换类型更加丰富。
作者:
韩继新
时间:
2013-9-26 09:14
一、区别:Convert.ToInt32()如果是参数是object或string的时候也是调用int.Parse来转换的,对于其它的如float,double等等只是检查一下数值范围然后return (int)value;char类型直接返回,bool类型真返回1,假返回0;
二、int.Parse效率高,因为用Convert.ToInt32()还是要调用int.Parse的,所以不如直接调用int.Parse的效率高
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2