C#中的arraylist中可以装object么,如何访问object的属性?最好有相关的代码说明。
1个回答
展开全部
可以,ArrayList数组内元素可以是任何Object可接受的数据类型。
如果要访问ArrayList中Object元素的属性,那就要知道该元素的具体类型是什么,显式转换成该具体类型才能对它的属性进行访问。
下面是一个控制台应用程序中的写的说明代码
static void Main(string[] args)
{
ArrayList childArray1 = new ArrayList();
childArray1.Add("Hello!");
ArrayList childArray2 = new ArrayList();
int a = 12;
childArray2.Add(a);
ArrayList parentArray = new ArrayList();
parentArray.Add(childArray1);
parentArray.Add(childArray2);
//取childArray1的count属性
Console.WriteLine(((ArrayList)parentArray[0]).Count);
//取childArray2的第一个元素的value
Console.WriteLine(((ArrayList)parentArray[1])[0]);
Console.ReadKey();
}
如果要访问ArrayList中Object元素的属性,那就要知道该元素的具体类型是什么,显式转换成该具体类型才能对它的属性进行访问。
下面是一个控制台应用程序中的写的说明代码
static void Main(string[] args)
{
ArrayList childArray1 = new ArrayList();
childArray1.Add("Hello!");
ArrayList childArray2 = new ArrayList();
int a = 12;
childArray2.Add(a);
ArrayList parentArray = new ArrayList();
parentArray.Add(childArray1);
parentArray.Add(childArray2);
//取childArray1的count属性
Console.WriteLine(((ArrayList)parentArray[0]).Count);
//取childArray2的第一个元素的value
Console.WriteLine(((ArrayList)parentArray[1])[0]);
Console.ReadKey();
}
追问
Console.WriteLine(((ArrayList)parentArray[0]).Count);这里的parentArray[0]必须要显示转换为ArrayList么?前面不是已经声明了parentArray是ArrayList 类型的对象了吗?
追答
parentArray是ArrayList,但是parentArray[0](第一个元素)被压入数组后就自动退化成Object类型了,所以取出第一个元素的时候要把它还原为它本来的类型..注意:parentArray和parentArray[0]不是一个东西..
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询