我需要Type变量中给出的n个元素的数组类型。 我正在解决这个问题:
Type foo;
int n;
Type newType=(Array.CreateInstance(foo,n)).GetType();
这有效,但它确实意味着我实际上是在创建一个未使用的数组,只是为了得到它的类型。我相信一定有更好的方法!
答案 0 :(得分:5)
您可以使用Type.MakeArrayType()
:
Type foo = typeof(Foo);
Type arrayType = foo.MakeArrayType();
这将返回Type
的一维数组的Foo
。数组的length
与类型无关。
对于多维数组,您可以使用this overload
Type foo = typeof(Foo);
int dimensions = 5;
Type arrayType = foo.MakeArrayType(dimensions);