Udostępnij za pośrednictwem


Type.GetNestedType Metoda

Definicja

Pobiera określony typ zagnieżdżony w bieżącym Typeobiekcie .

Przeciążenia

GetNestedType(String)

Wyszukuje zagnieżdżony typ publiczny o określonej nazwie.

GetNestedType(String, BindingFlags)

Po przesłonięciu w klasie pochodnej wyszukuje określony typ zagnieżdżony przy użyciu określonych ograniczeń powiązania.

GetNestedType(String)

Źródło:
Type.cs
Źródło:
Type.cs
Źródło:
Type.cs

Wyszukuje zagnieżdżony typ publiczny o określonej nazwie.

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

Ciąg zawierający nazwę zagnieżdżonego typu do pobrania.

Zwraca

Jeśli zostanie znaleziony obiekt reprezentujący publiczny zagnieżdżony typ o określonej nazwie; w przeciwnym razie , null.

Implementuje

Wyjątki

name to null.

Uwagi

Wyszukiwanie name jest uwzględniane w wielkości liter.

Użyj prostej nazwy zagnieżdżonej klasy dla elementu name. Nie kwalifikują się do niej nazwy klasy zewnętrznej. W przypadku ogólnej zagnieżdżonej klasy użyj nazwy mangled — czyli dołącz akcent grobowy i liczbę argumentów ogólnych. Na przykład użyj ciągu "Inner'1", aby uzyskać ogólną klasę Inner<T> zagnieżdżona (Inner(Of T) w Visual Basic). Nie należy uwzględniać składni specyficznej dla języka dla parametrów typu.

W poniższej tabeli przedstawiono, które elementy członkowskie klasy bazowej są zwracane przez Get metody podczas odzwierciedlania typu.

Typ elementu członkowskiego Static Niestatyczna
Konstruktor Nie Nie
Pole Nie Tak. Pole jest zawsze ukryte przez nazwę i podpis.
Zdarzenie Nie dotyczy Zasadą systemu typu jest to, że dziedziczenie jest takie samo, jak w przypadku metod, które implementują właściwość. Odbicie traktuje właściwości jako ukryte przez nazwę i podpis. Patrz Uwaga 2 poniżej.
Metoda Nie Tak. Metodą (zarówno wirtualną, jak i niewirtualną) może być ukrycie przez nazwę lub przez nazwę i podpis.
Typu zagnieżdżony Nie Nie
Właściwość Nie dotyczy Zasadą systemu typu jest to, że dziedziczenie jest takie samo, jak w przypadku metod, które implementują właściwość. Odbicie traktuje właściwości jako ukryte przez nazwę i podpis. Patrz Uwaga 2 poniżej.
  1. Ukrycie przez nazwę i podpis dotyczy wszystkich części podpisu, w tym modyfikatorów niestandardowych, zwraca typy, typy parametrów, wartowników i niezarządzane konwencje wywoływania. To jest porównanie binarne.

  2. W celu odbicia właściwości i zdarzenia są ukrywane przez nazwę i podpis. Jeśli istnieje właściwość z akcesorem pobierania i ustawiania w klasie bazowej, ale odziedziczona klasa ma tylko akcesor pobierania, właściwość klasy odziedziczonej ukrywa właściwości klasy bazowej, a nie można uzyskać dostępu do metody ustawiającej w klasie bazowej.

  3. Atrybuty niestandardowe nie są częścią wspólnego typu systemowego.

Jeśli bieżący Type reprezentuje parametr typu w definicji typu ogólnego lub metody ogólnej, ta metoda wyszukuje zagnieżdżone typy ograniczenia klasy.

Jeśli zagnieżdżony jest typ ogólny , metoda ta zwraca jego definicję typu ogólnego. Ta zasada obowiązuje, nawet jeśli otaczający typ ogólny jest skonstruowany jako zamknięty.

Uwaga

Jeśli bieżący Type reprezentuje typ ogólny zdefiniowany w języku C#, Visual Basic lub C++, jego zagnieżdżone typy są ogólne, nawet jeśli nie mają własnych parametrów ogólnych. Niekoniecznie dotyczy to typów zagnieżdżonych zdefiniowanych w zestawach dynamicznych lub skompilowanych za pomocą Ilasm.exe (IL Assembler).

Aby uzyskać informacje na temat zagnieżdżonych typów ogólnych i konstruowania zagnieżdżonych typów ogólnych z ich ogólnych definicji typów, zobacz MakeGenericType.

Zobacz też

Dotyczy

GetNestedType(String, BindingFlags)

Źródło:
Type.cs
Źródło:
Type.cs
Źródło:
Type.cs

Po przesłonięciu w klasie pochodnej wyszukuje określony typ zagnieżdżony przy użyciu określonych ograniczeń powiązania.

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

Ciąg zawierający nazwę zagnieżdżonego typu do pobrania.

bindingAttr
BindingFlags

Bitowa kombinacja wartości wyliczenia, które określają sposób przeprowadzania wyszukiwania.

-lub-

Default aby zwrócić nullwartość .

Zwraca

Obiekt reprezentujący zagnieżdżony typ zgodny z określonymi wymaganiami, jeśli zostanie znaleziony; w przeciwnym razie , null.

Implementuje

Wyjątki

name to null.

Uwagi

Użyj prostej nazwy zagnieżdżonej klasy dla elementu name. Nie kwalifikują się do niej nazwy klasy zewnętrznej. W przypadku ogólnej klasy zagnieżdżonej użyj nazwy mangled — czyli dołącz akcent grobowy i liczbę parametrów ogólnych. Na przykład użyj ciągu "Inner'1", aby uzyskać ogólną klasę Inner<T> zagnieżdżona (Inner(Of T) w Visual Basic). Nie należy uwzględniać składni specyficznej dla języka dla parametrów typu.

Następujące BindingFlags flagi filtru mogą służyć do definiowania typów zagnieżdżonych do uwzględnienia w wyszukiwaniu:

Ta metoda zwraca tylko zagnieżdżone typy bieżącego typu. Nie wyszukuje klas bazowych bieżącego typu. Aby znaleźć typy zagnieżdżone w klasach bazowych, należy przejść przez hierarchię dziedziczenia, wywołując GetNestedType na każdym poziomie.

BindingFlags.Instance i BindingFlags.Static są ignorowane.

Wywołanie tej metody tylko za pomocą flagi BindingFlags.Public lub tylko BindingFlags.NonPublic flaga zwróci określone zagnieżdżone typy i nie wymaga żadnych innych flag.

Aby uzyskać więcej informacji, zobacz System.Reflection.BindingFlags.

Jeśli bieżący Type reprezentuje parametr typu w definicji typu ogólnego lub metody ogólnej, ta metoda wyszukuje zagnieżdżone typy ograniczenia klasy.

Jeśli zagnieżdżony jest typ ogólny , metoda ta zwraca jego definicję typu ogólnego. Ta zasada obowiązuje, nawet jeśli otaczający typ ogólny jest skonstruowany jako zamknięty.

Uwaga

Jeśli bieżący Type reprezentuje typ ogólny zdefiniowany w języku C#, Visual Basic lub C++, jego zagnieżdżone typy są ogólne, nawet jeśli nie mają własnych parametrów ogólnych. Niekoniecznie dotyczy to typów zagnieżdżonych zdefiniowanych w zestawach dynamicznych lub skompilowanych za pomocą Ilasm.exe (IL Assembler).

Aby uzyskać informacje na temat zagnieżdżonych typów ogólnych i konstruowania zagnieżdżonych typów ogólnych z ich ogólnych definicji typów, zobacz MakeGenericType.

Zobacz też

Dotyczy