TypeBuilder.MakeGenericType(Type[]) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Substitui os elementos de um array de tipos pelos parâmetros de tipo da definição genérica atual e devolve o tipo construído resultante.
public:
override Type ^ MakeGenericType(... cli::array <Type ^> ^ typeArguments);
public override Type MakeGenericType(params Type[] typeArguments);
override this.MakeGenericType : Type[] -> Type
Public Overrides Function MakeGenericType (ParamArray typeArguments As Type()) As Type
Parâmetros
- typeArguments
- Type[]
Um array de tipos a substituir os parâmetros de tipo da definição genérica atual do tipo.
Devoluções
A Type representa o tipo construído formado substituindo os elementos de typeArguments pelos parâmetros do tipo genérico atual.
Exceções
O tipo atual não representa a definição de um tipo genérico. Ou seja, IsGenericTypeDefinition retorna false.
A Module propriedade de qualquer elemento de typeArguments é null.
-ou-
A Assembly propriedade do módulo de qualquer elemento de typeArguments é null.
Observações
Use este método quando o seu código emitido requer um tipo construído a partir da definição de tipo genérica atual. Não é necessário chamar o CreateType método antes de chamar o MakeGenericType método em um TypeBuilder que representa uma definição genérica de tipo. Se a corrente TypeBuilder não representar a definição de um tipo genérico, um InvalidOperationException é lançado.
O objeto devolvido por este método funciona como um marcador de lugar para um tipo genérico construído no seu código emitido. É uma instância de uma classe derivada de Type que tem capacidades limitadas. Em particular:
Para obter métodos, campos e construtores para estes tipos genéricos construídos, use os GetMethod(Type, MethodInfo)overloads de , GetField(Type, FieldInfo), e GetConstructor(Type, ConstructorInfo) de métodos.
Duas instâncias que representam o mesmo tipo construído não se comparam como iguais. Por exemplo, no seguinte código
t1.Equals(t2)retornafalse:
Type t1 = tbldr.MakeGenericType(typeof(string));
Type t2 = tbldr.MakeGenericType(typeof(string));
bool result = t1.Equals(t2);
Dim t1 As Type = tbldr.MakeGenericType(GetType(String))
Dim t2 As Type = tbldr.MakeGenericType(GetType(String))
Dim result As Boolean = t1.Equals(t2)