首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

放在arraylist中对象的属性有关问题

2012-01-13 
放在arraylist中对象的属性问题我写了个class1类,内有属性num0,new出1个class1对象并把它放在arraylist l

放在arraylist中对象的属性问题
我写了个class1类,内有属性num=0,new出1个class1对象并把它放在arraylist l中,接着我从这个l中取出对象,放在另一个arraylist l2中,可以从l2取出来强转后发现找不到这个对象的num属性,但是能找到他的方法,为什么啊?为什么会出现这种情况,我试过很多次都这样,要是我要能想从第2个arraylist中取得属性该怎么做?

[解决办法]
Class1 c1 = new Class1();
ArrayList1.Add(c1);
ArrayList2.Add((Class1)ArrayList1[0]);
((Class1)ArrayList[0]).属性
还有你的属性要设置成Public的
[解决办法]
正如一楼所说,num 属性首先应该是public的,外部才能访问。

C# code
class1 c1 = new class1();//类加入l1中l1.Add(c1);//从l1中取出对象加入l2中l2.Add((class1)l1[0]);//从l2中取出对象,并访问它的num成员int i = ((class1)l2[0]).num;
[解决办法]
改用List<>吧,不然要装箱和拆箱,效率低。
[解决办法]
确实有这样的问题,按wangpanli 所说 也编译不过去,不过如果将((class1)l2[0]拿出来写,就可以解决了。

class1 c1 = new class1();

//类加入l1中
l1.Add(c1);

//从l1中取出对象加入l2中
l2.Add((class1)l1[0]);

//从l2中取出对象,并访问它的num成员
class1 aaa=((class1)l2[0];
int i=aaa.num;

这样编译就能通过了。

热点排行