Как мне создать экземпляр типа Array с заданным ElementType? - PullRequest
0 голосов
/ 07 августа 2011

Как мне создать объект типа, который представляет тип массива с данным типом элемента?

Type t = MakeArrayType(elementType);  // How?

такой, что

Assert(t.GetElementType() == elementType);

Я могу создать фиктивный экземпляр моего запрошенного массива, а затем получить тип оттуда. Но мне интересно, есть ли способ получить тип без предварительного создания экземпляра?

object myArrayInstance = Array.CreateInstance(elementType, 0);
Type t = myArrayInstance.GetType();   // This is the desired type.

1 Ответ

3 голосов
/ 07 августа 2011

Если t относится к Type, то t.GetType(), очевидно, будет typeof(Type) или подтипом, а не typeof(Array).

Однако, я подозреваю, что вы хотите Type.MakeArrayType:

Type arrayType = elementType.MakeArrayType();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...