Generische Typen und Reflektion (C#-Programmierhandbuch)

Aktualisiert: November 2007

Weil die Common Language Runtime (CLR) zur Laufzeit Zugriff auf generische Typinformationen hat, können Sie mithilfe von Reflektion Informationen über generische Typen genauso wie für nicht generische Typen erhalten. Weitere Informationen finden Sie unter Generika zur Laufzeit (C#-Programmierhandbuch).

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

Eine Liste mit den invarianten Bedingungen für Begriffe, die im Zusammenhang mit generischer Reflektion verwendet werden, finden Sie in den Hinweisen zur IsGenericType-Eigenschaft.

System.Type-Membername

Beschreibung

IsGenericType

Gibt true zurück, wenn ein Typ generisch ist.

GetGenericArguments

Gibt ein Array von Type-Objekten zurück, die die für einen konstruierten Typ bereitgestellten Typargumente oder die Typparameter der Definition eines generischen Typs darstellen.

GetGenericTypeDefinition

Gibt die dem aktuellen konstruierten Typ zugrunde liegende Definition eines generischen Typs zurück.

GetGenericParameterConstraints

Gibt ein Array von Type-Objekten zurück, die die Einschränkungen auf dem aktuellen generischen Typparameter darstellen.

ContainsGenericParameters

Gibt true zurück, wenn der Typ oder einer seiner einschließenden Typen oder Methoden Typparameter enthält, für die bestimmte Typen nicht bereitgestellt wurden.

GenericParameterAttributes

Ruft eine Kombination von GenericParameterAttributes-Flags ab, die die besonderen Einschränkungen des aktuellen generischen Typparameters beschreiben.

GenericParameterPosition

Ruft für ein Type-Objekt, das einen Typparameter darstellt, die Position des Typparameters in der Typparameterliste der Definition eines generischen Typs bzw. der Definition einer generischen Methode ab, mit der der Typparameter deklariert wurde.

IsGenericParameter

Ruft einen Wert ab, der angibt, ob der aktuelle Type einen Typparameter der Definition eines generischen Typs oder einer generischen Methode darstellt.

IsGenericTypeDefinition

Ruft einen Wert ab, der angibt, ob der aktuelle Type die Definition eines generischen Typs darstellt, auf dessen Grundlage andere generische Typen konstruiert werden können. Gibt true zurück, wenn der Typ die Definition eines generischen Typs darstellt.

DeclaringMethod

Gibt die generische Methode zurück, mit der der aktuelle generische Typparameter definiert wurde, oder NULL, wenn der Typparameter nicht mit einer generischen Methode definiert wurde.

MakeGenericType

Ersetzt die Typparameter der Definition des aktuellen generischen Typs durch die Elemente eines Arrays von Typen und gibt ein Type-Objekt zurück, das den resultierenden konstruierten Typ darstellt.

Zusätzlich werden der MethodInfo-Klasse neue Member hinzugefügt, um Laufzeitinformationen für generische Methoden zu ermöglichen. Eine Liste mit den invarianten Bedingungen für Begriffe, die für die Reflektion mit generischen Methoden verwendet werden, finden Sie in den Hinweisen zur IsGenericMethod-Eigenschaft.

System.Reflection.MemberInfo-Membername

Beschreibung

IsGenericMethod

Gibt true zurück, wenn eine Methode generisch ist.

GetGenericArguments

Gibt ein Array von Type-Objekten zurück, die die Typargumente einer konstruierten generischen Methode oder die Typparameter der Definition einer generischen Methode darstellen.

GetGenericMethodDefinition

Gibt die der aktuellen konstruierten Methode zugrunde liegende Definition einer generischen Methode zurück.

ContainsGenericParameters

Gibt true zurück, wenn die Methode oder einer ihrer einschließenden Typen Typparameter enthält, für die bestimmte Typen nicht bereitgestellt wurden.

IsGenericMethodDefinition

Gibt true zurück, wenn das aktuelle MethodInfo die Definition einer generischen Methode darstellt.

MakeGenericMethod

Ersetzt die Typparameter der Definition der aktuellen generischen Methode durch die Elemente eines Arrays von Typen und gibt ein MethodInfo-Objekt zurück, das die resultierende konstruierte Methode darstellt.

Siehe auch

Konzepte

C#-Programmierhandbuch

Übersicht über Reflektion und generische Typen und Methoden

Referenz

Generika (C#-Programmierhandbuch)

Weitere Ressourcen

Generika in .NET Framework