Generische Typen und Reflektion (C#-Programmierhandbuch)Generics and Reflection (C# Programming Guide)

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.Because the Common Language Runtime (CLR) has access to generic type information at run time, you can use reflection to obtain information about generic types in the same way as for non-generic types. Weitere Informationen finden Sie unter Generika zur Laufzeit.For more information, see Generics in the Run Time.

In .NET Framework 2.0.NET Framework 2.0 wurden mehrere neue Member zur Type-Klasse hinzugefügt, um Laufzeitinformationen für generische Typen zu ermöglichen.In the .NET Framework 2.0.NET Framework 2.0 several new members are added to the Type class to enable run-time information for generic types. Weitere Informationen zur Verwendung dieser Methoden und Eigenschaften finden Sie in der Dokumentation zu diesen Klassen.See the documentation on these classes for more information on how to use these methods and properties. Der System.Reflection.Emit-Namespace enthält auch neue Member, die generische Typen unterstützen.The System.Reflection.Emit namespace also contains new members that support generics. Weitere Informationen finden Sie unter Vorgehensweise: Definieren eines generischen Typs mit Reflektionsausgabe.See How to: Define a Generic Type with Reflection Emit.

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 IsGenericType.For a list of the invariant conditions for terms used in generic reflection, see the IsGenericType property remarks.

System.Type-MembernameSystem.Type Member Name BeschreibungDescription
IsGenericType Gibt TRUE zurück, wenn ein Typ generisch istReturns true if a type is generic.
GetGenericArguments Gibt ein Array von Type-Objekten zurück, die die bereitgestellten Typargumente für einen konstruierten Typ oder die Typparameter einer generischen Typdefinition darstellenReturns an array of Type objects that represent the type arguments supplied for a constructed type, or the type parameters of a generic type definition.
GetGenericTypeDefinition Gibt die zugrunde liegende generische Typdefinition für den aktuellen konstruierten Typ zurückReturns the underlying generic type definition for the current constructed type.
GetGenericParameterConstraints Gibt ein Array von Type-Objekten zurück, die die Einschränkungen für den aktuellen generischen Typparameter darstellen.Returns an array of Type objects that represent the constraints on the current generic type parameter.
ContainsGenericParameters Gibt TRUE zurück, wenn der Typ oder einer seiner einschließenden Typen oder Methoden Typparameter enthalten, für die keine bestimmten Typen angegeben wurdenReturns true if the type or any of its enclosing types or methods contain type parameters for which specific types have not been supplied.
GenericParameterAttributes Ruft eine Kombination von GenericParameterAttributes-Flags ab, die die speziellen Einschränkungen des aktuellen generischen Typparameters beschreibenGets a combination of GenericParameterAttributes flags that describe the special constraints of the current generic type parameter.
GenericParameterPosition 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 deklariertFor a Type object that represents a type parameter, gets the position of the type parameter in the type parameter list of the generic type definition or generic method definition that declared the type parameter.
IsGenericParameter Ruft einen Wert ab, der angibt, ob der aktuelle Type einen Typparameter einer generischen Typ- oder Methodendefinition darstelltGets a value that indicates whether the current Type represents a type parameter of a generic type or method definition.
IsGenericTypeDefinition Ruft einen Wert ab, der angibt, ob der aktuelle Type eine generische Typdefinition darstellt, aus der andere generische Typen konstruiert werden können.Gets a value that indicates whether the current Type represents a generic type definition, from which other generic types can be constructed. Gibt TRUE zurück, wenn der Typ die Definition eines generischen Typs darstelltReturns true if the type represents the definition of a generic type.
DeclaringMethod Gibt die generische Methode, die den aktuellen generischen Typparameter definiert, oder null zurück, wenn der Typparameter nicht von einer generischen Methode definiert wurdeReturns the generic method that defined the current generic type parameter, or null if the type parameter was not defined by a generic method.
MakeGenericType Ersetzt die Typparameter der aktuellen generischen Typdefinition durch die Elemente eines Arrays von Typen und gibt ein Type-Objekt zurück, das den resultierenden konstruierten Typ darstellt.Substitutes the elements of an array of types for the type parameters of the current generic type definition, and returns a Type object representing the resulting constructed type.

Zusätzlich wurden neue Member zur MethodInfo-Klasse hinzugefügt, um Laufzeitinformationen für generische Methoden zu ermöglichen.In addition, new members are added to the MethodInfo class to enable run-time information for generic methods. 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 IsGenericMethod.See the IsGenericMethod property remarks for a list of invariant conditions for terms used to reflect on generic methods.

System.Reflection.MemberInfo-MembernameSystem.Reflection.MemberInfo Member Name BeschreibungDescription
IsGenericMethod Gibt TRUE zurück, wenn eine Methode generisch istReturns true if a method is generic.
GetGenericArguments Gibt ein Array von Type-Objekten zurück, die die Typargumente einer konstruierten generischen Methode oder die Typparameter einer generischen Methodendefinition darstellenReturns an array of Type objects that represent the type arguments of a constructed generic method or the type parameters of a generic method definition.
GetGenericMethodDefinition Gibt die zugrunde liegende generische Methodendefinition für die aktuelle konstruierte Methode zurückReturns the underlying generic method definition for the current constructed method.
ContainsGenericParameters Gibt TRUE zurück, wenn die Methode oder einer ihrer einschließenden Typen Typparameter enthält, für die keine bestimmten Typen angegeben wurdenReturns true if the method or any of its enclosing types contain any type parameters for which specific types have not been supplied.
IsGenericMethodDefinition Gibt TRUE zurück, wenn die aktuelle MethodInfo die Definition eines generischen Typs darstelltReturns true if the current MethodInfo represents the definition of a generic method.
MakeGenericMethod Ersetzt die Typparameter der aktuellen generischen Methodendefinition durch die Elemente eines Arrays von Typen und gibt ein MethodInfo-Objekt zurück, das die sich ergebende konstruierte Methode darstellt.Substitutes the elements of an array of types for the type parameters of the current generic method definition, and returns a MethodInfo object representing the resulting constructed method.

Siehe auchSee Also

C#-ProgrammierhandbuchC# Programming Guide
GenerikaGenerics
Reflektion und generische TypenReflection and Generic Types
GenerikaGenerics