我想在运行时获取类型的'数组类型'。我不需要数组的实例,只需要Type。我目前使用以下方法。
private Type GetArrayType(Type elementType)
{
return Array.CreateInstance(elementType, 0).GetType();
}
如果没有创建数组实例,还有更好的解决方案吗?
注意:我无法使用Type.GetType(elementType.FullName + "[]")
,因为我在Reflection.Emit
创建运行时的元素类型。根据{{3}},它需要将动态程序集保存在磁盘上,我不想这样做。
答案 0 :(得分:8)
是的,您可以使用Type.MakeArrayType
。
返回表示一维数组的Type对象 当前类型,下限为零。
private Type GetArrayType(Type elementType)
{
return elementType.MakeArrayType();
}