TypeBuilder.MakeGenericType(Type[]) Método

Definição

Substitui os elementos de uma matriz de tipos pelos parâmetros de tipo da definição de tipo genérico atual e retorna 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[]

Uma matriz de tipos a serem substituídos pelos parâmetros da definição de tipo genérico atual.

Retornos

Um Type representando o tipo construído formado substituindo os elementos do typeArguments pelos parâmetros de tipo 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.

typeArguments é null.

- ou -

Qualquer elemento de typeArguments é null.

A propriedade Module de qualquer elemento de typeArguments é null.

- ou -

A propriedade Assembly do módulo de qualquer elemento de typeArguments é null.

Comentários

Use esse método quando o código emitido exigir um tipo construído a partir da definição de tipo genérico 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 de tipo genérico. Se o atual TypeBuilder não representar a definição de um tipo genérico, um InvalidOperationException será gerado.

O objeto retornado por esse método funciona como um espaço reservado para um tipo genérico construído em seu código emitido. É uma instância de uma classe derivada de Type que tem recursos limitados. Especialmente:

Type^ t1 = tbldr->MakeGenericType(String::typeid);
Type^ t2 = tbldr->MakeGenericType(String::typeid);
bool result = t1->Equals(t2);
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)

Aplica-se a