试验进行一亿次转换的时间,结果相同,说明这两个在将字符串转换为整数时基本没区别.(40多秒差0.x秒,应该算是没差别吧)
一直在头脑里想是不是int.Parse效率是不是高些......
呵呵,这下可以放心的使用Convert.ToInt32()了.同时试验了一下加不加try{}catch{}的情况,结果说明:在不出现异常的时候,加与不加try{}catch{}块程序的运行效率一样.呵呵,原来不知听哪个说加了会影响效率,害我一直在心里想这里要不要加上......如果还有哪位在疑惑的话......听我的话:大胆的try吧!

解决方案 »

  1.   

    同时试验了一下加不加try{}catch{}的情况,结果说明:在不出现异常的时候,加与不加try{}catch{}块程序的运行效率一样.呵呵,原来不知听哪个说加了会影响效率,害我一直在心里想这里要不要加上......如果还有哪位在疑惑的话......听我的话:大胆的try吧!
    -----------------------------------------------------------------------------------
    这个还是不要乱用的好,的确是影响效率的
      

  2.   

    跟你测试数据有很大关系。另外,针对的Int的结果不能随便推论到Datetime等其它类型上。
      

  3.   

    try catch对效率的影响基本可以忽略不计,但如果你没加的话,万一出了异常,损失可就大了
    所以需要加的地方还是一定要加的,不过,好用也不能乱用
      

  4.   

    刚试过DateTime.Parse与Convert.ToDateTime了.也基本差不多.
      

  5.   

    int.Parse能转不是字符串的类型吗?
      

  6.   

    顺便问一下,int id=0;
    try{id=Convert.ToInt32(Request["id"]);}
    catch{id=0;}这句有没有更好的办法?
    我发现我的程序里绝大部分文件都用到了这几句话
      

  7.   

    jijl2001(jijl2001) ( ) 信誉:100    Blog  2006-11-22 22:14:23  得分: 0    int.Parse能转不是字符串的类型吗?-------------------------------------网上看到的资料说是:不能转.包括object类型都不行.
      

  8.   

    呵呵,这下可以放心的使用Convert.ToInt32()了
    ================>
    这两个方法的最大不同是它们对null值的处理方法:Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.QueryString["page"]),也可以用,int.Parse(Request.QueryString["page"]),但是如果page这个参数在url中不存在,那么前者将返回0,0可能是一个有效的值,所以你不知道url中原来根本就没有这个参数而继续进行下一下的处理,这就可能产生意想不到的效果,而用后一种办法的话没有page这个参数会抛出异常,我们可以捕获异常然后再做相应的处理,比如提示用户缺少参数,而不是把参数值当做0来处理。
      

  9.   

    webdiyer(陕北吴旗娃) ( ) 信誉:132    Blog 受教了. 这个一般人是想不到的. 呵呵
      

  10.   

    一直用 Convert.ToInt32() 
    路过....................
    学习试验进行一亿次转换的时间的测试方法.....
      

  11.   

    谢谢webdiyer(陕北吴旗娃)
    不管你说的对不对
    让我受教育了
      

  12.   

    try catch语句一般是不能乱用的,,但时又不能不用,如果不出什么问题是不会影响效率的,但是一出问题麻烦了,所以使用这对语句的时候一定要谨慎哦
      

  13.   

    这样的问题不需要写程序实验,你只需要用Reflector打开.NET的代码看一看,就知道他们分别做了什么了。
      

  14.   

    当然不会有区别!在Convert里就是直接调用的int.Parse两者实际没有区别!
      

  15.   

    Convert.ToInt32()
    和int.Parse()其实是同一个方法.在.net framework中,Convert.ToInt32(string)原型是这样子public static int ToInt32(string value)
            {
                if (value == null)
                {
                    return 0;
                }
                return int.Parse(value, CultureInfo.CurrentCulture);
            }所以...其实两个是一样的.最后真正调用执行转换的方法是private static unsafe bool ParseNumber
      

  16.   

    所以...从理论上来讲, Convert.ToInt32会慢一点点,因为会检查if(value=null)...
    但实际上,正如你试验的,这个判断几乎不需要时间
      

  17.   

    楼主啊,不要误导人啊。TYR的效率是有区别的。
      

  18.   

    我都用Convert.****很少用其他的,用其他转换我经常发现程序出错的。
      

  19.   

    Request["id"] 为什么一定要转换成   int 呢?直接用 string 不是挺好的吗?(在组合sql语句的情况下,如果您使用存储过程的话,那就是另一种情况了。)当然要先验证一下是不是数字,否则会有sql注入的危险。ps:验证字符串是否是数字,我用自己写的一个函数判断(参考了一位网友的代码,呵呵)。
      

  20.   

    jyk(喜欢编程。和气生财。共同提高。共同进步) ( ) 信誉:100    Blog  2006-11-23 14:36:50  得分: 0  -----------------------------------------
    我觉得反正id肯定是整型,且大于0的,直接转为整型可以省却不少麻烦. 有效性验证等都要方便.
      

  21.   

    规范的写法还是要TRYCATCH的.确实如果出了错后果就很严重了.