object[] 与 object之间的转换问题

Debug_mq 2006-07-12 09:37:09
我们都明白装箱,拆箱的事情,
但下面这种情况怎么解释:一个object[] 赋给一个object 是不是只是指针(暂时这样说)指向了object[],所以可以直接通过object来得到object[]?????


object[] arrA= new object[]{1,2,3};
object c = arrA; //????????
object obj = ((object [])c)[2].ToString();

求详解~!
...全文
231 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
futurekiss2008 2006-07-12
  • 打赏
  • 举报
回复
object[] arrA= new object[]{1,2,3};
object c = arrA; //这样是可以的,但在C++中就相当于把这个数组的第一个数赋给了C
object obj = ((object [])c)[2].ToString(); //必须要这样强行转换
object obj = c[2]; //直接这样会报“无法将带 [] 的索引应用于“object”类型的表达式”的错误
Debug_mq 2006-07-12
  • 打赏
  • 举报
回复
哦 这样.ths

其实是 array ==> Object
Knight94 2006-07-12
  • 打赏
  • 举报
回复
对于object[]类型来说,可以如下来解释:

1、首先是一个Array类型;
2、数组元素为object类型。

因此把一个Array类型赋值给object类型来说一点儿问题没有。
Debug_mq 2006-07-12
  • 打赏
  • 举报
回复

TO:qiekong(blue)

你其实可以自己验证一下的哟,呵呵。。
看来你也没搞清楚
liefeng123 2006-07-12
  • 打赏
  • 举报
回复
这是没错的,数组类型为引用类型,因此对于arrA来说本身就是一个object,因此可以作为object类型直接付给c。
================
同意
Knight94 2006-07-12
  • 打赏
  • 举报
回复
to object[] arrA= new object[]{1,2,3};
object c = arrA; //????????

这是没错的,数组类型为引用类型,因此对于arrA来说本身就是一个object,因此可以作为object类型直接付给c。
qiekong 2006-07-12
  • 打赏
  • 举报
回复
object[] arrA= new object[]{1,2,3};
object c = arrA; 这是错误的,正确的:object[] c = arrA //????????
要使用arrA或c时就像使用数组一样
object obj = arrA[2];或者object obj = c[2];
qyuhen 2006-07-12
  • 打赏
  • 举报
回复
数组本身是引用类型,不存在装箱问题。因此你的手法基本正确。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧