如何创建具有由type实例指定类型的元素的数组
本文关键字:实例 类型 元素 type 数组 何创建 创建 | 更新日期: 2023-09-27 18:09:15
我有一个FieldInfo
,我知道它是一个数组,所以我使用它的值来声明一个Array
实例,并获得数组元素的类型:
void Test(object baseInstance, FieldInfo baseInstanceField) {
Array a = (Array)baseInstanceField.GetValue(baseInstance);
Type elementType = TypeSystem.GetElementType(baseInstance.GetType());
}
现在我想用反射初始化一个具有特定长度的elementType
类型的新数组。我该怎么做呢?稍后我将不得不访问这个新数组的元素。
elementType[] newArray = new elementType[34]; //doesn't work
类型或命名空间名称' elementType'找不到。您是否缺少using指令或程序集引用?
显然它不起作用,因为您提供的不是类型定义,而是变量(Type
类型,这里不相关)。
Array
类有一个创建数组的方法:Array.CreateInstance(Type, int)
:
var newArray = Array.CreateInstance(elementType, 34);