TypeBuilder.MakeGenericType(Type[]) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Um Methoden, Felder und Konstruktoren für diese erstellten generischen Typen abzurufen, verwenden Sie die GetMethod(Type, MethodInfo)Methodenüberladungen , GetField(Type, FieldInfo)und GetConstructor(Type, ConstructorInfo) .
Zwei Instanzen, die denselben konstruierten Typ darstellen, werden nicht gleich verglichen. Im folgenden Code
t1.Equals(t2)
wird beispielsweise zurückgegebenfalse
:
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)