for(int i=0; i < ArrayBook.Length; i++)
{
ArrayBook[i] = new Book();
ArrayBook[i].Price = i;
}
....if(typeArray.IsArray)
{
Array a = (Array)myFieldInfo.GetValue( myBook);
for (int i=0; i < a.Length; i++)
{
Book b = (Book)a.GetValue(i);
Console.WriteLine(b.Price);
}
}
{
ArrayBook[i] = new Book();
ArrayBook[i].Price = i;
}
....if(typeArray.IsArray)
{
Array a = (Array)myFieldInfo.GetValue( myBook);
for (int i=0; i < a.Length; i++)
{
Book b = (Book)a.GetValue(i);
Console.WriteLine(b.Price);
}
}
如果你有实例,那么可以转换到Array后再操作.如果你要得到Array的元素类型,那么参考
Type.GetElementType
{
Type typeArray=myFieldInfo.FieldType;
//判断该公共成员是否是数组
if(typeArray.IsArray)
{
Array arrayC=(Array)myFieldInfo.GetValue(myBook);
for(int i=0;i<arraySourceClass.Length;i++)
{ if(arraySourceClass.GetValue(i)==null)
//判断数组元素初始化了没有,如果没有初始化,下面就给它初始化
{
请问这了怎么给数组元素初始化?????
//不可以用arraySourceClass.GetValue(i)=new Book();
//因为是用反射。
}
}
}
}
a.SetValue(Activator.CreateInstance(typeArray.GetElementType()),i);