Generische Typen und Reflektion (C#-Programmierhandbuch)

Da die Common Language Runtime (CLR) Zugriff auf generische Typinformationen zur Laufzeit verfügt, können Sie die Reflektion zum Abrufen von Informationen über generische Typen genauso wie für nicht generische Typen verwenden. Weitere Informationen finden Sie unter Generika zur Laufzeit.

In .NET Framework 2.0 wurden mehrere neue Member zur <xref:System.Type>-Klasse hinzugefügt, um Laufzeitinformationen für generische Typen zu ermöglichen. Weitere Informationen zur Verwendung dieser Methoden und Eigenschaften finden Sie in der Dokumentation zu diesen Klassen. Der <xref:System.Reflection.Emit>-Namespace enthält auch neue Member, die generische Typen unterstützen. Weitere Informationen finden Sie unter Vorgehensweise: Definieren eines generischen Typs mit Reflektionsausgabe.

Eine Liste der invarianten Bedingungen für Begriffe, für Begriffe, die für die Reflektion mit generischen Methoden verwendet werden, finden Sie in den Hinweisen zur Eigenschaft <xref:System.Type.IsGenericType%2A>.

System.Type-Membername Beschreibung
<xref:System.Type.IsGenericType%2A> Gibt TRUE zurück, wenn ein Typ generisch ist
<xref:System.Type.GetGenericArguments%2A> Gibt ein Array von Type-Objekten zurück, die die bereitgestellten Typargumente für einen konstruierten Typ oder die Typparameter einer generischen Typdefinition darstellen
<xref:System.Type.GetGenericTypeDefinition%2A> Gibt die zugrunde liegende generische Typdefinition für den aktuellen konstruierten Typ zurück
<xref:System.Type.GetGenericParameterConstraints%2A> Gibt ein Array von Type-Objekten zurück, die die Einschränkungen für den aktuellen generischen Typparameter darstellen.
<xref:System.Type.ContainsGenericParameters%2A> Gibt TRUE zurück, wenn der Typ oder einer seiner einschließenden Typen oder Methoden Typparameter enthalten, für die keine bestimmten Typen angegeben wurden
<xref:System.Type.GenericParameterAttributes%2A> Ruft eine Kombination von GenericParameterAttributes-Flags ab, die die speziellen Einschränkungen des aktuellen generischen Typparameters beschreiben
<xref:System.Type.GenericParameterPosition%2A> Ruft für ein Type-Objekt, das einen Typparameter darstellt, die Position des Typparameters in der Typparameterliste des generischen Typs oder der generischen Methode, die den Typparameter deklariert
<xref:System.Type.IsGenericParameter%2A> Ruft einen Wert ab, der angibt, ob der aktuelle Type einen Typparameter einer generischen Typ- oder Methodendefinition darstellt
<xref:System.Type.IsGenericTypeDefinition%2A> Ruft einen Wert ab, der angibt, ob der aktuelle <xref:System.Type> eine generische Typdefinition darstellt, aus der andere generische Typen konstruiert werden können. Gibt TRUE zurück, wenn der Typ die Definition eines generischen Typs darstellt
<xref:System.Type.DeclaringMethod%2A> Gibt die generische Methode, die den aktuellen generischen Typparameter definiert, oder null zurück, wenn der Typparameter nicht von einer generischen Methode definiert wurde
<xref:System.Type.MakeGenericType%2A> Ersetzt die Typparameter der aktuellen generischen Typdefinition durch die Elemente eines Arrays von Typen und gibt ein <xref:System.Type>-Objekt zurück, das den resultierenden konstruierten Typ darstellt.

Zusätzlich wurden neue Member zur <xref:System.Reflection.MethodInfo>-Klasse hinzugefügt, um Laufzeitinformationen für generische Methoden zu ermöglichen. Eine Liste der invarianten Bedingungen für Begriffe, die für die Reflektion mit generischen Methoden verwendet werden, finden Sie unter den Hinweisen zur Eigenschaft <xref:System.Reflection.MethodInfo.IsGenericMethod%2A>.

System.Reflection.MemberInfo-Membername Beschreibung
<xref:System.Reflection.MethodInfo.IsGenericMethod%2A> Gibt TRUE zurück, wenn eine Methode generisch ist
<xref:System.Reflection.MethodInfo.GetGenericArguments%2A> Gibt ein Array von Type-Objekten zurück, die die Typargumente einer konstruierten generischen Methode oder die Typparameter einer generischen Methodendefinition darstellen
<xref:System.Reflection.MethodInfo.GetGenericMethodDefinition%2A> Gibt die zugrunde liegende generische Methodendefinition für die aktuelle konstruierte Methode zurück
<xref:System.Reflection.MethodInfo.ContainsGenericParameters%2A> Gibt TRUE zurück, wenn die Methode oder einer ihrer einschließenden Typen Typparameter enthält, für die keine bestimmten Typen angegeben wurden
<xref:System.Reflection.MethodInfo.IsGenericMethodDefinition%2A> Gibt TRUE zurück, wenn die aktuelle <xref:System.Reflection.MethodInfo> die Definition eines generischen Typs darstellt
<xref:System.Reflection.MethodInfo.MakeGenericMethod%2A> Ersetzt die Typparameter der aktuellen generischen Methodendefinition durch die Elemente eines Arrays von Typen und gibt ein <xref:System.Reflection.MethodInfo>-Objekt zurück, das die sich ergebende konstruierte Methode darstellt.

Siehe auch

C#-Programmierhandbuch
Generika
Reflektion und generische Typen
Generika