当前位置: 代码迷 >> ASP.NET >> 急值相同,(int)转换出错,Convert.ToInt32()不会出错,为什么?该如何处理
  详细解决方案

急值相同,(int)转换出错,Convert.ToInt32()不会出错,为什么?该如何处理

热度:3067   发布时间:2013-02-26 00:00:00.0
急!急!值相同,(int)转换出错,Convert.ToInt32()不会出错,为什么?
急!急!值相同,(int)转换出错,Convert.ToInt32()不会出错,为什么?

------解决方案--------------------------------------------------------
原因是被转换的对象原本不是Int类型

用(int)转换时必须是与该类型兼容的类型

比如 一个变量 Object A,如果该变量是 int 转换得到,(int)转换时不会出错,

如果是其它类型 ,如 A= "123 ",则转换时将会出错,

而用Convert.ToInt32()则可以将其它类型的变量转换过来,只要是数字
------解决方案--------------------------------------------------------
Convet是将一种基本数据类型转换为另一种基本类型
------解决方案--------------------------------------------------------
(int) 是类型转换
Convert.ToInt32 是内容转换
------解决方案--------------------------------------------------------
(int)转换时必须是与该类型兼容的类型,而且在转换前要验证该类型,如果类型不符合将无法通过编译
Convert.ToInt32 着不管()里面是什么都可以编译过去,也不管数据是什么类型的都能通过编译
------解决方案--------------------------------------------------------
楼上说的差不多了

------解决方案--------------------------------------------------------
强制类型转换根本不做数据值的转换。
------解决方案--------------------------------------------------------
使用场合不同, 一个是把一个出生在北京的中国人转换成北京人

另一个是把一个广东人入北京户口


完全两码事。


所以第一个当这个中国人不在北京出生长大,他就不一定能算是北京人,因此出错。

但不管他是北京出生广东出生,只要符合入北京户口的条件,都可以如北京户口。所以不出错。


你如果那个东西是个 DateTime ,那就不符合入北京户口条件了,就两个都出错。
  相关解决方案