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 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:
Sie müssen entweder angeben BindingFlags.Public oder BindingFlags.NonPublic eine Rückgabe abrufen.
Geben Sie an BindingFlags.Public , dass öffentliche geschachtelte Typen in die Suche einbezogen werden sollen.
Geben Sie an BindingFlags.NonPublic , dass nicht öffentliche geschachtelte Typen (d. h. private, interne und geschützte geschachtelte 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. |
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.
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.
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.