Freigeben über


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

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 ihr ausgegebener Code einen Typ erfordert, der aus der aktuellen generischen Typdefinition erstellt wurde. Es ist nicht erforderlich, die CreateType -Methode aufzurufen, bevor Sie die MakeGenericType -Methode für eine TypeBuilder -Methode aufrufen, die eine generische Typdefinition darstellt. Wenn der aktuelle TypeBuilder nicht die Definition eines generischen Typs darstellt, wird ein InvalidOperationException ausgelöst.

Das von dieser Methode zurückgegebene Objekt fungiert als Platzhalter für einen erstellten generischen Typ in Ihrem ausgegebenen Code. Es handelt sich um eine instance einer klasse, die über Type begrenzte 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: