浅析Convert,Parse和TryParse
2014-10-17 13:47
148 查看
最近老是看到Convert,Parse,但是忽然发现居然不知道它们的区别,所以决定好好研究下,下面是研究成果,有误之处请指出。
上面的例子中,体现了它们之间的关系,请容我细细说来:
Convert可以将大部分的object转成所需的类型。而Parse和TryParse貌似只能将string类型转成int类型。
当string类型的实例为Null时,Convert返回值是0,Parse会出现异常,TryParse返回0。TryParse和Parse感觉它两最大的区别就是TryParse加了异常保护。可以接收异常string。
当要转换的是小数时,Convert会转成偶数,即1.2换转成2,2.6会转成2。Parse会出现异常,显示的强制转换成较小的数,没有四舍五入的概念。
int.TryParse返回的是bool,0表示转换不成功:具体用法是
当string为字符不是数字时,除了TryParse不出现异常,其他都出现异常。
static void Main(string[] args) { string str = null; int n = Convert.ToInt32(str); Console.WriteLine("n的值为:"+n); try { int m = int.Parse(str); Console.WriteLine("m的值为:"+m); } catch (Exception ex) { Console.WriteLine("出现异常"+ex); } int result; int.TryParse(str, out result); Console.WriteLine("result的结果为:" + result); Console.ReadKey(); }
上面的例子中,体现了它们之间的关系,请容我细细说来:
Convert可以将大部分的object转成所需的类型。而Parse和TryParse貌似只能将string类型转成int类型。
当string类型的实例为Null时,Convert返回值是0,Parse会出现异常,TryParse返回0。TryParse和Parse感觉它两最大的区别就是TryParse加了异常保护。可以接收异常string。
当要转换的是小数时,Convert会转成偶数,即1.2换转成2,2.6会转成2。Parse会出现异常,显示的强制转换成较小的数,没有四舍五入的概念。
int.TryParse返回的是bool,0表示转换不成功:具体用法是
static void Main(string[] args) { string str1 = "5"; int n = int.Parse(str1); int result1; int.TryParse(str1, out result1); Console.WriteLine("result的值是:" + result1); //Console.ReadKey(); string str2 = "a"; //int m = Convert.ToInt32(str2); ////int p = int.Parse(str2); int result2; int.TryParse(str2,out result2); Console.WriteLine("result的值是:" + result2); }
当string为字符不是数字时,除了TryParse不出现异常,其他都出现异常。
相关文章推荐
- Convert、Parse、TryParse、(int) 区别
- tryParse, try/catch(Parse), Convert比较
- 数据类型转换的三种方式 Convert,parse和TryParse的解析
- 网友面试题:C#,不使用任何Parse,TryParse,Convert方法,自写函数将数字字符串转换成整数
- 使用C#,不使用任何Parse,TryParse,Convert方法,将数字字符串转换成整数
- Convert、Parse、TryParse、(int)区别及可能引发性能问题
- C#(int)中Convert、Parse、TryParse的区别
- Convert、Parse、TryParse、(int) 的区别
- Convert、Parse、TryParse、(int) 区别
- Convert、Parse、TryParse、(int)等区别
- Convert、Parse、TryParse、(int)等区别
- Convert、Parse、TryParse、(int) 的区别
- Convert、Parse、TryParse、(int) 的区别
- Convert、Parse、TryParse、(int) 的区别
- C#(int)中Convert、Parse、TryParse的区别
- Convert、Parse、TryParse、(int)
- Parse,TryParse,Convert 比较
- Convert、Parse、TryParse、(int)等区别
- C#中转换函数Convert、Parse、TryParse、(int) 的区别