如何创建一个表示具有给定元素类型的数组类型的类型对象?
Type t = MakeArrayType(elementType); // How?
这样
Assert(t.GetElementType() == elementType);
我可以创建我所请求数组的虚拟实例,然后从那里获取类型。但我想知道是否有办法在不先创建实例的情况下获取类型?
object myArrayInstance = Array.CreateInstance(elementType, 0);
Type t = myArrayInstance.GetType(); // This is the desired type.
答案 0 :(得分:3)
如果t
引用Type
,那么t.GetType()
显然是typeof(Type)
或子类型 - 而不是typeof(Array)
。
但是,我怀疑你想要Type.MakeArrayType
:
Type arrayType = elementType.MakeArrayType();