Int32.Parse()和Convert.ToInt32()

(int),Int32.Parse(),Convert.ToInt32(),Int32.tryParse()区别:

1.(int)是在long,float到int类型的显式转换,主要是同类型的转换。在被转换的数值大于 Int32.MaxValue 或小于 Int32.MinValue会报错;

2.int.Parse()在符合数字格式的string到int类型转换过程中使用,因为只是从string到int的转换,性能做了优化,效率要高些,如果string 数字格式不正确,则抛出FormatException相应的异常;

3.Convert.ToInt32()可以将多种类型的值转换为int 类型,对超出范围的数值抛出OverflowException异常;

4.Int32.tryParse()对null不会抛出异常,会返回true或false来说明。

对null值的处理方法:

Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。

举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.QueryString["page"]),也可以用,int.Parse(Request.QueryString["page"]),但是如果page这个参数在url中不存在,那么前者将返回0,0可能是一个有效的值,所以你不知道url中原来根本就没有这个参数而继续进行下一下的处理,这就可能产生意想不到的效果,而用后一种办法的话没有page这个参数会抛出异常,我们可以捕获异常然后再做相应的处理,比如提示用户缺少参数,而不是把参数值当做0来处理。
 

posted on 2013-08-20 16:18  YoungPop_Chen  阅读(168)  评论(0编辑  收藏  举报

导航