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 Elemente eines Arrays von Typen für die Typparameter der aktuellen generischen Typdefinition und gibt den resultierenden konstruierten Typ zurück.
public:
override Type ^ MakeGenericType(... cli::array <Type ^> ^ typeArguments);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("The native code for this instantiation might not be available at runtime.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met.")]
public override Type MakeGenericType(params Type[] typeArguments);
public override Type MakeGenericType(params Type[] typeArguments);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met.")]
public override Type MakeGenericType(params Type[] typeArguments);
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("The native code for this instantiation might not be available at runtime.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met.")>]
override this.MakeGenericType : Type[] -> Type
override this.MakeGenericType : Type[] -> Type
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met.")>]
override this.MakeGenericType : Type[] -> Type
Public Overrides Function MakeGenericType (ParamArray typeArguments As Type()) As Type
Parameter
- typeArguments
- Type[]
Ein Array von Typen, die durch die Typparameter der aktuellen generischen Typdefinition ersetzt werden sollen.
Gibt zurück
A Type representing the constructed type formed by substituting the elements of typeArguments for the type parameters of the current generic type.
- Attribute
Ausnahmen
Der aktuelle Typ stellt die Definition eines generischen Typs nicht dar. Das heißt, IsGenericTypeDefinition gibt zurück false.
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 für eine MakeGenericType Methode aufgerufen wird, die TypeBuilder eine generische Typdefinition darstellt. Wenn der aktuelle Wert nicht die Definition eines generischen TypeBuilder Typs darstellt, wird ein InvalidOperationException Fehler ausgelöst.
Das von dieser Methode zurückgegebene Objekt fungiert als Platzhalter für einen konstruierten generischen Typ in Ihrem ausgegebenen Code. Es handelt sich um eine Instanz einer Klasse, die von Type einer eingeschränkten Funktionalität abgeleitet wurde. Dies gilt insbesondere für:
Verwenden Sie zum Abrufen von Methoden, Feldern und Konstruktoren für diese konstruierten generischen Typen die GetMethod(Type, MethodInfo)Überladungen und GetField(Type, FieldInfo)GetConstructor(Type, ConstructorInfo) Methodenüberladungen.
Zwei Instanzen, die denselben konstruierten Typ darstellen, werden nicht gleich verglichen. Im folgenden Code wird z. B
t1.Equals(t2). Folgendes zurückgegebenfalse:
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)