我们都明白装箱,拆箱的事情,
但下面这种情况怎么解释:一个object[] 赋给一个object 是不是只是指针(暂时这样说)指向了object[],所以可以直接通过object来得到object[]?????
object[] arrA= new object[]{1,2,3};
object c = arrA; //????????
object obj = ((object [])c)[2].ToString();求详解~!
但下面这种情况怎么解释:一个object[] 赋给一个object 是不是只是指针(暂时这样说)指向了object[],所以可以直接通过object来得到object[]?????
object[] arrA= new object[]{1,2,3};
object c = arrA; //????????
object obj = ((object [])c)[2].ToString();求详解~!
object c = arrA; 这是错误的,正确的:object[] c = arrA //????????
要使用arrA或c时就像使用数组一样
object obj = arrA[2];或者object obj = c[2];
object c = arrA; //????????这是没错的,数组类型为引用类型,因此对于arrA来说本身就是一个object,因此可以作为object类型直接付给c。
================
同意
TO:qiekong(blue)你其实可以自己验证一下的哟,呵呵。。
看来你也没搞清楚
2、数组元素为object类型。因此把一个Array类型赋值给object类型来说一点儿问题没有。
object c = arrA; //这样是可以的,但在C++中就相当于把这个数组的第一个数赋给了C
object obj = ((object [])c)[2].ToString(); //必须要这样强行转换
object obj = c[2]; //直接这样会报“无法将带 [] 的索引应用于“object”类型的表达式”的错误