首页 新闻 会员 周边

数组赋值问题

0
悬赏园豆:10 [已解决问题] 解决于 2011-04-24 13:04

int[] n = { 1, 2, 3 };
object[] o = n;
以上赋值不可以,但是下面的赋值却可以:(Chinese类是Person类的子类)
Chinese[] cn = { new Chinese() { Name = "zs" }, new Chinese() { Name = "ls" } };
Person[] per = cn;
求解释。不要只来一句:int是值类型,Chinese是引用类型。

steve.z的主页 steve.z | 初学一级 | 园豆:180
提问于:2011-04-20 22:58
< >
分享
最佳答案
0

你给那个int的换成string就行了,因为int是值类型,要进行装箱才能赋值进去,所以上边的可以,下边的不可以

string[] n = { "1", "2", "3" };
object[] o = n;

这样就行,,,你看看,,,

收获园豆:10
王元勋 | 菜鸟二级 |园豆:413 | 2011-04-21 15:21
究其原因还是因为int是值类型对吧?能再解释一下吗?比如从内存分配的角度。
steve.z | 园豆:180 (初学一级) | 2011-04-21 15:27
还有个问题,数组不也是引用类型吗?
steve.z | 园豆:180 (初学一级) | 2011-04-24 13:02
暂时我觉得这个就是最佳答案了。
steve.z | 园豆:180 (初学一级) | 2011-04-24 13:04
其他回答(1)
0
like%'远远'% | 园豆:635 (小虾三级) | 2011-04-21 10:09
我是想问object[] o = n;不可以,而per=cn却可以,为什么?
支持(0) 反对(0) steve.z | 园豆:180 (初学一级) | 2011-04-21 15:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册