本文主要是介绍Specified cast is not valid ,强制转换失败解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
可以使用强制转换 例如: Item = Convert.ToInt32( addItem) ;
这段代码会报错了。原因是为啥? 这里面的水比较深。也要提醒各位写代码的适合要引起注意。异常:System.InvalidCastException: Specified cast is not valid.
先来分析下为毛会报错。 我们知道,装箱操作,是可以把任意类型进行装箱操作的,但是我们是不是可以拆箱成我们需要的类型呢。
var test=(long)obj; 编译器知道obj是object类型的对象。拆箱的时候,编译器生成一个拆箱的指令,假设这是一个拆箱的为int类型,然后将int
类型转换为long类型的自定义指令序列。假设这是一个双重的相同的盒子,但是不同说明等等,对于所有内置整数的转换。这个代码将会非常大
这个将是非常慢的。所以说,编译器在进行拆箱的时候,只能取消选中确切的类型。...
要解决这个问题:采用Convert.ToInt64既可以解决。 这个convert.to方法为我们提供了快速精确或
缓慢松懈的选择。
关于这个问题解决办法也有了,但是问题的本质还是没有理解到位,请大牛们指点。
这篇关于Specified cast is not valid ,强制转换失败解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!