TypeBuilder.MakeGenericType(Type[]) Methode

Definition

Ersetzt die Typparameter der aktuellen generischen Typdefinition durch die Elemente eines Arrays von Typen und gibt den resultierenden konstruierten Typ zurück.

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

Parameter

typeArguments
Type[]

Ein Array von Typen, die die Typparameter der aktuellen generischen Typdefinition ersetzen sollen.

Gibt zurück

Type

Ein Type, der den konstruierten Typ darstellt, der durch Ersetzen der Typparameter des aktuellen generischen Typs durch die Elemente von typeArguments erstellt wurde.

Ausnahmen

Der aktuelle Typ stellt keine Definition eines generischen Typs dar. Das heißt, IsGenericTypeDefinition gibt false zurück.

typeArguments ist null.

- oder - Eines der Elemente von typeArguments ist null.

Die Module-Eigenschaft eines beliebigen Elements von typeArguments ist null.

- oder - Die Assembly-Eigenschaft des Moduls eines beliebigen Elements von typeArguments ist null.

Hinweise

Verwenden Sie diese Methode, wenn der ausgegebene Code einen Typ erfordert, der aus der aktuellen generischen Typdefinition erstellt wird. Es ist nicht erforderlich, die -Methode aufzurufen, CreateType bevor die -Methode für einen aufgerufen wird, der MakeGenericType eine generische TypeBuilder Typdefinition darstellt. Wenn die aktuelle TypeBuilder nicht die Definition eines generischen Typs darstellt, InvalidOperationException wird eine ausgelöst.

Das von dieser Methode zurückgegebene Objekt fungiert als Platzhalter für einen konstruierten generischen Typ im ausgegebenen Code. Es handelt sich um eine Instanz einer von abgeleiteten Type Klasse, die über eingeschränkte Funktionen verfügt. Dies gilt insbesondere für:

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)

Gilt für