Freigeben über


Type.GetNestedType Methode

Definition

Ruft einen bestimmten Typ ab, der innerhalb des aktuellen Typetyps geschachtelt ist.

Überlädt

Name Beschreibung
GetNestedType(String, BindingFlags)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird mithilfe der angegebenen Bindungseinschränkungen nach dem angegebenen geschachtelten Typ gesucht.

GetNestedType(String)

Sucht nach dem öffentlichen geschachtelten Typ mit dem angegebenen Namen.

GetNestedType(String, BindingFlags)

Quelle:
Type.cs
Quelle:
Type.cs
Quelle:
Type.cs
Quelle:
Type.cs
Quelle:
Type.cs

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird mithilfe der angegebenen Bindungseinschränkungen nach dem angegebenen geschachtelten Typ gesucht.

public:
 abstract Type ^ GetNestedType(System::String ^ name, System::Reflection::BindingFlags bindingAttr);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicNestedTypes | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes)]
public abstract Type? GetNestedType(string name, System.Reflection.BindingFlags bindingAttr);
public abstract Type GetNestedType(string name, System.Reflection.BindingFlags bindingAttr);
public abstract Type? GetNestedType(string name, System.Reflection.BindingFlags bindingAttr);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicNestedTypes | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes)>]
abstract member GetNestedType : string * System.Reflection.BindingFlags -> Type
abstract member GetNestedType : string * System.Reflection.BindingFlags -> Type
Public MustOverride Function GetNestedType (name As String, bindingAttr As BindingFlags) As Type

Parameter

name
String

Die Zeichenfolge, die den Namen des geschachtelten Typs enthält, der abgerufen werden soll.

bindingAttr
BindingFlags

Eine bitweise Kombination der Enumerationswerte, die angeben, wie die Suche durchgeführt wird.

- oder -

Default zurückzugeben null.

Gibt zurück

Ein Objekt, das den geschachtelten Typ darstellt, der den angegebenen Anforderungen entspricht, falls gefunden; andernfalls . null

Implementiert

Attribute

Ausnahmen

name ist null.

Hinweise

Verwenden Sie den einfachen Namen der geschachtelten Klasse für name. Qualifizieren Sie sie nicht mit dem Namen der äußeren Klasse. Verwenden Sie für eine generische geschachtelte Klasse den geschachtelten Namen , d. h. fügen Sie einen Gravisakzent und die Anzahl der generischen Parameter an. Verwenden Sie beispielsweise die Zeichenfolge "Inner'1", um die generische geschachtelte Klasse Inner<T> abzurufen (Inner(Of T) in Visual Basic). Schließen Sie keine sprachspezifische Syntax für Typparameter ein.

Die folgenden BindingFlags Filterkennzeichnungen können verwendet werden, um zu definieren, welche geschachtelten Typen in die Suche einbezogen werden sollen:

Diese Methode gibt nur die geschachtelten Typen des aktuellen Typs zurück. Die Basisklassen des aktuellen Typs werden nicht durchsucht. Um Typen zu finden, die in Basisklassen geschachtelt sind, müssen Sie die Vererbungshierarchie durchlaufen und auf jeder Ebene aufrufen GetNestedType .

BindingFlags.Instance und BindingFlags.Static werden ignoriert.

Wenn Sie diese Methode nur mit der BindingFlags.Public Kennzeichnung oder nur der BindingFlags.NonPublic Kennzeichnung aufrufen, werden die angegebenen geschachtelten Typen zurückgegeben, und es sind keine anderen Flags erforderlich.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Wenn der aktuelle Type Parameter einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die geschachtelten Typen der Klasseneinschränkung.

Wenn ein geschachtelter Typ generisch ist, gibt diese Methode die generische Typdefinition zurück. Dies gilt auch dann, wenn der eingeschlossene generische Typ ein geschlossener konstruierter Typ ist.

Hinweis

Wenn die aktuelle Type einen generischen Typ darstellt, der in C#, Visual Basic oder C++ definiert ist, sind die geschachtelten Typen alle generisch, auch wenn sie keine generischen Parameter besitzen. Dies gilt nicht unbedingt für geschachtelte Typen, die in dynamischen Assemblys definiert oder mit dem Ilasm.exe (IL Assembler) kompiliert wurden.

Informationen zu geschachtelten generischen Typen und zum Erstellen geschachtelter generischer Typen aus ihren generischen Typdefinitionen finden Sie unter MakeGenericType.

Weitere Informationen

Gilt für:

GetNestedType(String)

Quelle:
Type.cs
Quelle:
Type.cs
Quelle:
Type.cs
Quelle:
Type.cs
Quelle:
Type.cs

Sucht nach dem öffentlichen geschachtelten Typ mit dem angegebenen Namen.

public:
 Type ^ GetNestedType(System::String ^ name);
public:
 virtual Type ^ GetNestedType(System::String ^ name);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes)]
public Type? GetNestedType(string name);
public Type GetNestedType(string name);
public Type? GetNestedType(string name);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes)>]
member this.GetNestedType : string -> Type
member this.GetNestedType : string -> Type
abstract member GetNestedType : string -> Type
override this.GetNestedType : string -> Type
Public Function GetNestedType (name As String) As Type

Parameter

name
String

Die Zeichenfolge, die den Namen des geschachtelten Typs enthält, der abgerufen werden soll.

Gibt zurück

Ein Objekt, das den öffentlichen geschachtelten Typ mit dem angegebenen Namen darstellt, falls gefunden; andernfalls . null

Implementiert

Attribute

Ausnahmen

name ist null.

Hinweise

Bei der Suche nach name wird die Groß- und Kleinschreibung beachtet.

Verwenden Sie den einfachen Namen der geschachtelten Klasse für name. Qualifizieren Sie sie nicht mit dem Namen der äußeren Klasse. Verwenden Sie für eine generische geschachtelte Klasse den geschachtelten Namen , d. h. fügen Sie einen Gravis-Akzent und die Anzahl der generischen Argumente an. Verwenden Sie beispielsweise die Zeichenfolge "Inner'1", um die generische geschachtelte Klasse Inner<T> abzurufen (Inner(Of T) in Visual Basic). Schließen Sie keine sprachspezifische Syntax für Typparameter ein.

Die folgende Tabelle zeigt, welche Member einer Basisklasse von den Get Methoden zurückgegeben werden, wenn sie einen Typ widerspiegeln.

Mitgliedertyp Statisch Nicht statisch
Konstruktor No No
Feld No Ja. Ein Feld ist immer hide-by-name-and-signature.
Ereignis Nicht anwendbar Die allgemeine Typsystemregel besteht darin, dass die Vererbung mit der der Methode identisch ist, die die Eigenschaft implementiert. Reflection behandelt Eigenschaften als Hide-by-Name-and-Signature. Siehe Hinweis 2 unten.
Methode No Ja. Eine Methode (sowohl virtuell als auch nicht-virtuell) kann Hide-by-name oder Hide-by-name-and-signature sein.
Geschachtelter Typ No No
Eigentum Nicht anwendbar Die allgemeine Typsystemregel besteht darin, dass die Vererbung mit der der Methode identisch ist, die die Eigenschaft implementiert. Reflection behandelt Eigenschaften als Hide-by-Name-and-Signature. Siehe Hinweis 2 unten.
  1. Hide-by-name-and-signature berücksichtigt alle Elemente der Signatur, einschließlich angepasste Modifikatoren, Rückgabetypen, Parametertypen, Sentinels und nicht verwaltete Aufrufkonventionen. Dies ist ein binärer Vergleich.

  2. Bei der Reflection sind Eigenschaften und Ereignisse Hide-by-Name-and-Signature. Wenn Sie über eine Eigenschaft mit einem Get- und einem Set-Accessor in der Basisklasse verfügen, die abgeleitete Klasse jedoch nur über einen Get-Accessor verfügt, blendet die abgeleitete Klasseneigenschaft die Basisklasseneigenschaft aus, und Sie können nicht auf den Setter der Basisklasse zugreifen.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.

Wenn der aktuelle Type Parameter einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die geschachtelten Typen der Klasseneinschränkung.

Wenn ein geschachtelter Typ generisch ist, gibt diese Methode die generische Typdefinition zurück. Dies gilt auch dann, wenn der eingeschlossene generische Typ ein geschlossener konstruierter Typ ist.

Hinweis

Wenn die aktuelle Type einen generischen Typ darstellt, der in C#, Visual Basic oder C++ definiert ist, sind die geschachtelten Typen alle generisch, auch wenn sie keine generischen Parameter besitzen. Dies gilt nicht unbedingt für geschachtelte Typen, die in dynamischen Assemblys definiert oder mit dem Ilasm.exe (IL Assembler) kompiliert wurden.

Informationen zu geschachtelten generischen Typen und zum Erstellen geschachtelter generischer Typen aus ihren generischen Typdefinitionen finden Sie unter MakeGenericType.

Weitere Informationen

Gilt für: