Condividi tramite


TypeBuilder.MakeGenericType(Type[]) Metodo

Definizione

Sostituisce gli elementi di una matrice di tipi ai parametri di tipo della definizione di tipo generico corrente e restituisce il tipo costruito risultante.

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

Parametri

typeArguments
Type[]

Matrice di tipi con cui sostituire i parametri di tipo della definizione di tipo generico corrente.

Restituisce

Oggetto Type che rappresenta il tipo costruito ottenuto sostituendo i parametri di tipo del tipo generico corrente con gli elementi di typeArguments.

Eccezioni

Il tipo corrente non rappresenta la definizione di un tipo generico. Ciò significa che IsGenericTypeDefinition restituisce false.

typeArguments è null.

-oppure-

Qualsiasi elemento di typeArguments è null.

La proprietà Module di qualsiasi elemento di typeArguments è null.

-oppure-

La proprietà Assembly del modulo di qualsiasi elemento di typeArguments è null.

Commenti

Usare questo metodo quando il codice generato richiede un tipo costruito dalla definizione di tipo generico corrente. Non è necessario chiamare il CreateType metodo prima di chiamare il MakeGenericType metodo su un TypeBuilder oggetto che rappresenta una definizione di tipo generico. Se l'oggetto corrente TypeBuilder non rappresenta la definizione di un tipo generico, viene generata un'eccezione InvalidOperationException .

L'oggetto restituito da questo metodo funge da segnaposto per un tipo generico costruito nel codice generato. Si tratta di un'istanza di una classe derivata da Type che ha funzionalità limitate. In particolare:

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)

Si applica a