在.net中如何转换数据类型效率更高呢?
像以下的转换那个效率最高啊?
我知道Convert.ToInt32效率肯定会有一些那么强制转换和int.Parse呢?还有没有更好的转换方式啊?user.Id=(int)reader["Id"];
user.Id=int.Parse(reader["Id"].ToString());
user.Id = Convert.ToInt32(reader["Id"]);

解决方案 »

  1.   


    int id=0;
    int.TryParse(reader["Id"].ToString(),out id);
      

  2.   

    TryParse-〉如果字符串可以转为int,则将结果赋给id,并返回true;否则返回false,id值为0
      

  3.   

    1,Convert.ToInt32(reader["Id"]); 效率是最低的
    2,Int32.Parse 跟Int32.TryParse的区别是:
      TryParse 当此方法返回时,如果转换成功,则包含与 s 所包含的数字等效的 32 位有符号整数值;如果转换失败,则包含零。如果 s 参数为 空引用,格式不正确,或者表示的数字小于 MinValue 或大于 MaxValue,则转换会失败。该参数未经初始化即被传递。不会抛出异常
      Parse 转换失败会抛出异常
    ArgumentNullException s 为 空引用。 
    FormatException s 不是仅由一个可选负号后跟一系列从 0 到 9 的数字组成的。
    OverflowException  s 表示小于 MinValue 或大于 MaxValue 的数字。
     
       
      

  4.   

    user.Id=(int)reader["Id"];//这个最快,但是不安全
    user.Id=int.Parse(reader["Id"].ToString());// 这个如果转换失败会有异常
    user.Id = Convert.ToInt32(reader["Id"]);//这个和上面的实现是一样的
    int.TryParse可以将转换后的int作为out传出来,同时返回一个bool来判断是否转换成功,实现方法和第二种是一样的。
      

  5.   

    如果数据本身是int类型,当然直接拆箱了
    转为字符串再Parse那不是多此一举了吗?