急!急!值相同,(int)转换出错,Convert.ToInt32()不会出错,为什么?
急!急!值相同,(int)转换出错,Convert.ToInt32()不会出错,为什么?
------解决方案--------------------原因是被转换的对象原本不是Int类型
用(int)转换时必须是与该类型兼容的类型
比如 一个变量 Object A,如果该变量是 int 转换得到,(int)转换时不会出错,
如果是其它类型 ,如 A= "123 ",则转换时将会出错,
而用Convert.ToInt32()则可以将其它类型的变量转换过来,只要是数字
------解决方案--------------------Convet是将一种基本数据类型转换为另一种基本类型
------解决方案--------------------(int) 是类型转换
Convert.ToInt32 是内容转换
------解决方案--------------------(int)转换时必须是与该类型兼容的类型,而且在转换前要验证该类型,如果类型不符合将无法通过编译
Convert.ToInt32 着不管()里面是什么都可以编译过去,也不管数据是什么类型的都能通过编译
------解决方案--------------------楼上说的差不多了
------解决方案--------------------强制类型转换根本不做数据值的转换。
------解决方案--------------------使用场合不同, 一个是把一个出生在北京的中国人转换成北京人
另一个是把一个广东人入北京户口
完全两码事。
所以第一个当这个中国人不在北京出生长大,他就不一定能算是北京人,因此出错。
但不管他是北京出生广东出生,只要符合入北京户口的条件,都可以如北京户口。所以不出错。
你如果那个东西是个 DateTime ,那就不符合入北京户口条件了,就两个都出错。