Type.GetNestedType Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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)
- Quelle:
- Type.cs
- Quelle:
- Type.cs
- Quelle:
- Type.cs
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. |
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.
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.
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)
- Quelle:
- Type.cs
- Quelle:
- Type.cs
- Quelle:
- Type.cs
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:
Sie müssen entweder BindingFlags.Public oder BindingFlags.NonPublic angeben, um eine Rückgabe zu erhalten.
Geben Sie an BindingFlags.Public , dass öffentliche geschachtelte Typen in die Suche eingeschlossen werden sollen.
Geben Sie an BindingFlags.NonPublic , um nicht öffentliche geschachtelte Typen (d. h. private, interne und geschützte geschachtelte Typen) in die Suche einzuschließen.
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.