Sdílet prostřednictvím


Type.GetNestedType Metoda

Definice

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.
  1. 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í.

  2. 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.

  3. 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í nullse .

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í:

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.

Viz také

Platí pro