Compartir vía


TypeBuilder.MakeGenericType(Type[]) Método

Definición

Sustituye los elementos de una matriz de tipos por los parámetros de tipo de la definición de tipo genérico actual y devuelve el tipo construido 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[]

Matriz de tipos que se va a sustituir por los parámetros de la definición del tipo genérico actual.

Devoluciones

Objeto Type que representa el tipo construido formado al sustituir los elementos de typeArguments por los parámetros del tipo genérico actual.

Excepciones

El tipo actual no representa la definición de un tipo genérico. Es decir, IsGenericTypeDefinition devuelve false.

typeArguments es null.

O bien

Cualquier elemento de typeArguments es null.

La propiedad Module de cualquier elemento de typeArguments es null.

o bien

La propiedad Assembly del módulo de cualquier elemento de typeArguments es null.

Comentarios

Use este método cuando el código emitido requiera un tipo construido a partir de la definición de tipo genérico actual. No es necesario llamar al CreateType método antes de llamar al MakeGenericType método en un TypeBuilder que representa una definición de tipo genérico. Si el objeto actual TypeBuilder no representa la definición de un tipo genérico, se produce una InvalidOperationException excepción .

El objeto devuelto por este método funciona como marcador de posición para un tipo genérico construido en el código emitido. Es una instancia de una clase derivada de Type que tiene funcionalidades limitadas. En concreto:

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)

Se aplica a