Type.GetNestedType Methode

Definition

Ruft einen bestimmten Typ ab, der im aktuellen Type geschachtelt ist.

Überlädt

GetNestedType(String)

Sucht den öffentlichen geschachtelten Typ mit dem angegebenen Namen.

GetNestedType(String, BindingFlags)

Sucht beim Überschreiben in einer abgeleiteten Klasse unter Verwendung der angegebenen Bindungseinschränkungen den angegebenen geschachtelten Typ.

GetNestedType(String)

Sucht den öffentlichen geschachtelten Typ mit dem angegebenen Namen.

public:
 Type ^ GetNestedType(System::String ^ name);
public:
 virtual Type ^ GetNestedType(System::String ^ name);
public Type? GetNestedType (string name);
public Type GetNestedType (string name);
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 abzurufenden geschachtelten Typs enthält.

Gibt zurück

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

Implementiert

Ausnahmen

name ist null.

Hinweise

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

Verwenden Sie den einfachen Namen der geschachtelten Klasse für name. Qualifizieren Sie ihn nicht mit dem Namen der äußeren Klasse. Verwenden Sie für eine generische geschachtelte Klasse den mangled-Namen, d. h. fügen Sie einen ernsten Akzent und die Anzahl generischer Argumente an. Verwenden Sie beispielsweise die Zeichenfolge "Inner'1", um die generische geschachtelte Klasse Inner<T> (Inner(Of T) in Visual Basic) abzurufen. 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 reflektieren.

Memberart statischen Nicht statisch
Konstruktor Nein Nein
Feld Nein Ja. Ein Feld wird immer nach Name und Signatur ausgeblendet.
Ereignis Nicht zutreffend Die allgemeine Typsystemregel ist, dass die Vererbung mit der der Methoden identisch ist, die die -Eigenschaft implementieren. Reflektion behandelt Eigenschaften als Hide-by-Name-and-Signature. Siehe Hinweis 2 unten.
Methode Nein Ja. Eine Methode (sowohl virtuell als auch nicht virtuell) kann hide-by-name oder hide-by-name-and-signature sein.
Geschachtelter Typ Nein Nein
Eigenschaft Nicht zutreffend Die allgemeine Typsystemregel ist, dass die Vererbung mit der der Methoden identisch ist, die die -Eigenschaft implementieren. Reflektion behandelt Eigenschaften als Hide-by-Name-and-Signature. Siehe Hinweis 2 unten.
  1. Hide-by-Name-and-signature berücksichtigt alle Teile der Signatur, einschließlich benutzerdefinierter Modifizierer, Rückgabetypen, Parametertypen, Sentinels und nicht verwalteter Aufrufkonventionen. Dies ist ein binärer Vergleich.

  2. Für die Reflektion werden Eigenschaften und Ereignisse nach Name und Signatur ausgeblendet. 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 Basisklasseeigenschaft aus, und Sie können nicht auf den Setter für die Basisklasse zugreifen.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.

Wenn der aktuelle Type 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 ihre generische Typdefinition zurück. Dies gilt auch dann, wenn der einschließende generische Typ ein geschlossener konstruierter Typ ist.

Hinweis

Wenn der aktuelle einen generischen Type Typ darstellt, der in C#, Visual Basic oder C++ definiert ist, sind die geschachtelten Typen alle generisch, auch wenn sie keine eigenen generischen Parameter aufweisen. 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, BindingFlags)

Sucht beim Überschreiben in einer abgeleiteten Klasse unter Verwendung der angegebenen Bindungseinschränkungen den angegebenen geschachtelten Typ.

public:
 abstract Type ^ GetNestedType(System::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);
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 abzurufenden geschachtelten Typs enthält.

bindingAttr
BindingFlags

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

- oder -

Default, damit null zurückgegeben wird.

Gibt zurück

Ein Objekt, das den geschachtelten Typ darstellt, der den angegebenen Anforderungen entspricht, sofern gefunden, andernfallsnull.

Implementiert

Ausnahmen

name ist null.

Hinweise

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

Die folgenden BindingFlags Filterflags 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 dem BindingFlags.Public Flag oder nur dem BindingFlags.NonPublic Flag aufrufen, werden die angegebenen geschachtelten Typen zurückgegeben und keine weiteren Flags erforderlich.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Wenn der aktuelle Type 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 ihre generische Typdefinition zurück. Dies gilt auch dann, wenn der einschließende generische Typ ein geschlossener konstruierter Typ ist.

Hinweis

Wenn der aktuelle einen generischen Type Typ darstellt, der in C#, Visual Basic oder C++ definiert ist, sind die geschachtelten Typen alle generisch, auch wenn sie keine eigenen generischen Parameter aufweisen. 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: