(int)((object)2)能拆箱成功,(float)((object)2)不能拆箱成功?这是为什么呢?
我觉得是这样的,当2被装箱之后转换成object引用类型,其实是在堆里加了一个引用指向了栈里的2,但是2还是是int类型。
当拆箱时,其实还是在对2进行拆箱,所以只能拆为int!
别纠结这个了,.NET的机制问题,不允许拆箱的时候改变数据类型。
int类型不能强转成float?
程序里是这样说的:不能正确拆箱
(float)((int)((object)2))
(float)((object)2f)