Type.GetNestedType Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá konkrétní typ vnořený v aktuálním Typeobjektu .
Přetížení
GetNestedType(String) |
Vyhledá veřejný vnořený typ se zadaným názvem. |
GetNestedType(String, BindingFlags) |
Při přepsání v odvozené třídě vyhledá zadaný vnořený typ pomocí zadaných vazeb omezení. |
GetNestedType(String)
- Zdroj:
- Type.cs
- Zdroj:
- Type.cs
- Zdroj:
- Type.cs
Vyhledá veřejný vnořený typ se zadaným názvem.
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
Parametry
- name
- String
Řetězec obsahující název vnořeného typu, který chcete získat.
Návraty
Objekt představující veřejný vnořený typ se zadaným názvem, pokud je nalezen; v opačném případě . null
Implementuje
Výjimky
name
je null
.
Poznámky
Při hledání name
se rozlišují velká a malá písmena.
Použijte jednoduchý název vnořené třídy pro name
. Nekvalifikujte ji názvem vnější třídy. Pro obecnou vnořenou třídu použijte zkameněný název – to znamená, že připojíte zvýraznění a počet obecných argumentů. Například pomocí řetězce "Inner'1" získáte obecnou vnořenou třídu Inner<T>
(Inner(Of T)
v jazyce Visual Basic). Pro parametry typu nezahrnujte syntaxi specifickou pro jazyk.
Následující tabulka ukazuje, jaké členy základní třídy jsou vráceny metodami Get
při odrazu na typu.
Typ členu | Static | Nestatický |
---|---|---|
Konstruktor | No | No |
Pole | No | Yes. Pole je vždy skrýváno podle názvu a podpisu. |
Událost | Nelze použít | Pro systém typů platí obecné pravidlo, že dědičnost je stejná jako u metod, které implementují vlastnost. Reflexe pracuje s třídami jako se skrývanými podle názvu a podpisu. Viz poznámka 2 níže. |
Metoda | No | Yes. Metody (virtuální i nevirtuální) mohou být skrývány podle názvu nebo podle názvu a podpisu. |
Vnořený typ | No | Ne |
Vlastnost | Nelze použít | Pro systém typů platí obecné pravidlo, že dědičnost je stejná jako u metod, které implementují vlastnost. Reflexe pracuje s třídami jako se skrývanými podle názvu a podpisu. Viz poznámka 2 níže. |
Skrývání podle názvu a podpisu bere v úvahu všechny části podpisu včetně vlastních modifikátorů, návratových typů, typů parametrů, sentinelů a nespravovaných konvencí volání. Jedná se o binární porovnání.
Pro účely reflexe jsou vlastnosti a události skrývány podle názvu a podpisu. Má-li vlastnost v základní třídě přístupové metody get i set, ale odvozená třída má pouze přístupovou metodu get, vlastnost odvozené třídy skryje vlastnost základní třídy a nebudete mít k dispozici přístup k metodě set základní třídy.
Vlastní atributy nejsou součástí systému společných typů.
Pokud current Type představuje parametr typu v definici obecného typu nebo obecné metody, tato metoda prohledá vnořené typy omezení třídy.
Pokud je vnořený typ obecný, vrací tato metoda příslušnou definici obecného typu. To platí i tehdy, je-li nadřazeným obecným typem uzavřený konstruovaný typ.
Poznámka
Pokud aktuální Type představuje obecný typ definovaný v jazyce C#, Visual Basic nebo C++, jsou všechny jeho vnořené typy obecné, i když nemají žádné vlastní obecné parametry. To nemusí nutně platit pro vnořené typy definované v dynamických sestaveních nebo kompilované pomocíIlasm.exe (IL Assembler).
Informace o vnořených obecných typech a o vytváření vnořených obecných typů z jejich definic obecných typů najdete v tématu MakeGenericType.
Viz také
Platí pro
GetNestedType(String, BindingFlags)
- Zdroj:
- Type.cs
- Zdroj:
- Type.cs
- Zdroj:
- Type.cs
Při přepsání v odvozené třídě vyhledá zadaný vnořený typ pomocí zadaných vazeb omezení.
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
Parametry
- name
- String
Řetězec obsahující název vnořeného typu, který chcete získat.
- bindingAttr
- BindingFlags
Bitové kombinace hodnot výčtu, které určují, jak se provádí hledání.
-nebo-
Default a vrátí null
se .
Návraty
Objekt představující vnořený typ, který odpovídá zadaným požadavkům, pokud je nalezen; v opačném případě . null
Implementuje
Výjimky
name
je null
.
Poznámky
Použijte jednoduchý název vnořené třídy pro name
. Nekvalifikujte ji názvem vnější třídy. Pro obecnou vnořenou třídu použijte zkameněný název – to znamená, že přidáte zvýraznění a počet obecných parametrů. Například pomocí řetězce "Inner'1" získáte obecnou vnořenou třídu Inner<T>
(Inner(Of T)
v jazyce Visual Basic). Pro parametry typu nezahrnujte syntaxi specifickou pro jazyk.
Následující BindingFlags příznaky filtru lze použít k definování vnořených typů, které se mají zahrnout do hledání:
Pokud chcete získat vrácení, musíte zadat buď BindingFlags.Public nebo BindingFlags.NonPublic .
Zadejte BindingFlags.Public , aby se do hledání zahrnuly veřejné vnořené typy.
Zadejte BindingFlags.NonPublic , aby se do hledání zahrnuly neveřejné vnořené typy (tj. privátní, interní a chráněné vnořené typy).
Tato metoda vrátí pouze vnořené typy aktuálního typu. Neprohledává základní třídy aktuálního typu. Pokud chcete najít typy, které jsou vnořené v základních třídách, musíte procházet hierarchii dědičnosti a volat GetNestedType na každé úrovni.
BindingFlags.Instance a BindingFlags.Static jsou ignorovány.
Volání této metody pouze s příznakem BindingFlags.Public nebo pouze BindingFlags.NonPublic příznakem vrátí zadané vnořené typy a nevyžaduje žádné další příznaky.
Další informace naleznete v tématu System.Reflection.BindingFlags.
Pokud current Type představuje parametr typu v definici obecného typu nebo obecné metody, tato metoda prohledá vnořené typy omezení třídy.
Pokud je vnořený typ obecný, vrací tato metoda příslušnou definici obecného typu. To platí i tehdy, je-li nadřazeným obecným typem uzavřený konstruovaný typ.
Poznámka
Pokud aktuální Type představuje obecný typ definovaný v jazyce C#, Visual Basic nebo C++, jsou všechny jeho vnořené typy obecné, i když nemají žádné vlastní obecné parametry. To nemusí nutně platit pro vnořené typy definované v dynamických sestaveních nebo kompilované pomocíIlasm.exe (IL Assembler).
Informace o vnořených obecných typech a o vytváření vnořených obecných typů z jejich definic obecných typů najdete v tématu MakeGenericType.