转自http://www.cnblogs.com/Ihaveadream/

"

Convert.ToInt32、(int)和int.Parse三者的区别:

前者适合将object类类型转换成int类型,如Convert.ToInt32(session["shuzi"]);

(int)适合简单数据类型之间的转换;

int.Parse适合将string类类型转换成int类型,如int.Parse(session["shuzi"].ToString())。

(1)这两个方法的最大不同是它们对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来处理。

(2)还有一点区别就是
  a. Convert.ToInt32(double value)
如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5转换为4,4.5 转换为 4,而 5.5 转换为 6。  不过4.6可以转换为5,4.4转换为4
  b. int.Parse("4.5") 
直接报错:"输入字符串的格式不正确".

c. int(4.6) = 4
Int转化其他数值类型为Int时没有四舍五入,强制转换

int.Parse是转换String为int
Convert.ToInt32是转换继承自Object的对象为int的. 
你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.

个人总结:
(1)Convert.ToInt32的参数比较多,Int.Parse只能转换string类型的.
(2)Parse就是把String转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string.
(3)Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string).
(4)至于效率上的区别可以看看这遍文章:《细说Convert和Parse到底那个效率高》

"

百度知道

"

Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 四者都可以解释为将类型转换为 int,那它们的区别是什么呢?Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:Convert.ToInt32 参数为 null 时,返回 0;
int.Parse 参数为 null 时,抛出异常。 Convert.ToInt32 参数为 "" 时,抛出异常;
int.Parse 参数为 "" 时,抛出异常。 Convert.ToInt32 可以转换的类型较多;
int.Parse 只能转换数字类型的字符串。
int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0。

"

细说Convert和Parse到底那个效率高!

转自http://www.cnblogs.com/Ihaveadream/

"

前言:
    好多高手,献丑了。
    大家都知道在进行类型转换的时候有连个方法供我们使用就是Convert.to和*.Parse,但是疑问就是什么时候用C 什么时候用P
     通俗的解释大家都知道:
     Convert 用来转换继承自object类型的类型(当然所有的类型都是继承自object的),但是一般Convert用来转化直接就是obejct的类型,如我们用datareader从数据库取出一个数据的时候就是object类型的,此时你若用int.parse(dr["id"]);肯定会报错的,所以必须使用Convert.toint32(dr["id"]);
     而Parse用来转换String类型的数据。
      其实我们看System这个基类就会发现,他的Convert类提供了几乎所有N型到N型的转化,就是Convert也只是string类型到int型的转化,只是parse没有提供针对object的转化罢了,可以说parse是N型(除了string类型,他不提供parse的转化,仅支持Convert到其他类型的转化)。都有的一个方法,而Convert提供了泛义上的转化。
      疑问来了,既然Convert提供了泛义的转化比如 string str="1234"; int32.parse(str);Convert.toint32(str);都可以达到相同的效果。哪么到底我们该用那一个,而那一个效果又会更好!
      来看system这个基类:
       以int到string类型的转换,不带格式的转换为例,当我们使用int32.parse(str)的时候,他其实是在调用mscorlib基类库的system类中的构造类型int32中的Parse方法。而这个方法调用了本构造中的一个重载(Overload)方法Parse。

public static int Parse(string s)
{
    return Parse(s, NumberStyles.Integer, null);
}

 

 

而重载的parse中采取调用system中只读函数Nunber

public static int Parse(string s, NumberStyles style, IFormatProvider provider)
{
    NumberFormatInfo instance = NumberFormatInfo.GetInstance(provider);
    NumberFormatInfo.ValidateParseStyle(style);
    return Number.ParseInt32(s, style, instance);
}

 

 

Nubmer中的PasreInt32会去执行转换。
      好,int的分析到此。看Convert的转换,
    当我们调用Convert.toint32这个方法的时候看看Convert类是怎么执行的!

public static int ToInt32(string value, IFormatProvider provider)
{
    if (value == null)
    {
        return 0;
    }
    return int.Parse(value, NumberStyles.Integer, NumberFormatInfo.GetInstance(provider));
}

 

 

你会发现他直接就去找了int这个类的Parse方法。而这个方法直接去执行了int32中parse的那个重载的方法。可见殊途同归他们最后到要落到只读类Number身上去进行类型转换。性能差距在进行到Number之前就产生了!在parse中他会直接找到自身,而Convert转化string到什么类型最终都是落到该类型的parse身上,所以针对string类型的转换还是本身类型的parse效率更高一些。

"

转载于:https://www.cnblogs.com/ndxsdhy/archive/2011/07/10/2102362.html

Convert.ToInt32、(int)和int.Parse 三者的区别 转相关推荐

  1. Convert.Int32、(int)和int.Parse三者的区别

    今天去面试,碰到这样一道题目,回来查了下答案~! Convert.ToInt32.(int)和int.Parse三者的区别: 前者适合将object类类型转换成int类型,如Convert.ToInt ...

  2. (int),Int32.Parse() 和 Convert.toInt32() 的区别

    在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...

  3. 在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别

    在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...

  4. int.Parse()和Convert.ToInt32之间的主要区别是什么

    int.Parse()和Convert.ToInt32()之间的主要区别是什么? 哪一个是首选 #1楼 Convert.ToInt32 有19种重载或19种不同的方式可以称之为. 2010版可能更多. ...

  5. C语言int r(int m),INT(M)表示什么意思?

    根据官方文档描述,int(M)中的M表示数据显示的宽度,与实际存储的长度无关. 1.也就是int(3)和int(11)能够存储的数据是一样的,都是从-2147483648到2147483647(或者0 ...

  6. (.Net常识)(int),Int32.Parse,Conver.ToInt32三者在什么情况下使用以及其区别。

    三者分别侧重在以下情况下使用: (int) : 适合简单数据类型之间的转换,在对long 类型或是浮点型到int 类型的显式强制转换中使用,但是如果被转换的数值大于 Int32.MaxValue 或小 ...

  7. Convert.ToInt32()与int.Parse()的区别 (转载)

    Convert.ToInt32()与int.Parse()的区别(1)这两个方法的最大不同是它们对null值的处理:Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Pa ...

  8. C#中(int),int.Parse,int.TryParse,Convert.ToInt32四则之间的用法

    今天忽然遇到了 int 转型的问题 同样转int型 结果 用int.Parse() 这种方式转世错的 用Convert.ToInt32的方式转却正确 所以今天特意上网搜了下 在这共享下 有需要的看下吧 ...

  9. Convert.ToInt32()与int.Parse()的区别

    Convert.ToInt32()与int.Parse()的区别 一.区别一 这两个方法的最大不同是它们对null值的处理方法: Convert.ToInt32(null)会返回0而不会产生任何异常, ...

  10. C#/.NET整数的三种强制类型转换(int)、Convert.ToInt32()、int.Parse()的区别

    1.(int) 适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型). 2. int.Parse(string sParameter) 是个构造函数,参数类型只支持string类 ...

最新文章

  1. Mule学习笔记(二)
  2. synchronized原理_synchronized 关键字底层原理
  3. postgresql定义访问ip与用户_Postgresql-12.1最新版本在线安装以及配置使用全流程
  4. matlab一致性检验程序,一致性检验的源程序.doc
  5. django 1.8 官方文档翻译: 5-1-1 使用表单
  6. Git学习系列之Debian或Ubuntu上安装Git详细步骤(图文详解)
  7. c#读取ini配置文件、将配置数据保存至ini文件
  8. CentOS6的python2.6升级到python2.7以上版本(可能更详细)
  9. 时序逻辑电路的设计与分析
  10. Android 权限汇总大全
  11. awr报告 解读_Oracle Awr报告_awr报告解读_基础简要信息
  12. 手动杀毒,SOLA病毒,也称之为worm.script.bat.Agent、Trojan.Win32.Sola病毒)
  13. Learning C++ No.14【STL No.4】
  14. python从0到1_从0到1的Python学习经验
  15. 使用EXCEL绘制三维地图(超简单的五分钟绘制地图方法,妈妈再也不用担心我不会画地图啦~)
  16. 2021年第十二届蓝桥杯省赛+国三C/C++B组参赛经历分享
  17. 超级牙医html5游戏,‎App Store 上的“我是 小 牙医 游戏 - 牙醫 診所”
  18. 数据结构实验题——一元多项式计算
  19. 2020年还需要阅读的10篇人工智能论文(附链接)
  20. 华为云计算机访问手机软件,手机也能当电脑使用?华为黑科技:手机云电脑

热门文章

  1. mysql结构改写为hbase表_根据mysql表中字段创建hbase表
  2. mysql innodb数据库引擎_mysql的innodb数据库引擎详解
  3. 为什么普通红包自己不能领_为什么行驶证和驾驶证不能放在车上?别给自己找麻烦...
  4. windows系统下搭建私有nuget仓储服务器, 打包程序集并推送到私有nuget仓储服务器...
  5. 洛谷P3709 大爷的字符串题(莫队)
  6. ABAP function group和Tomcat library重复加载问题 1
  7. python.day.04——常用数据类型(一):strList
  8. Struts2中Struts.xml的作用
  9. HDU 4919 打表找规律 java睑板 map 递归
  10. iBooks 一样的翻书效果