Type.GetNestedType Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |
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.
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.
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ć null
wartość .
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:
Musisz określić jedną z BindingFlags.Public opcji lub BindingFlags.NonPublic uzyskać zwrot.
Określ BindingFlags.Public , aby uwzględnić publiczne zagnieżdżone typy w wyszukiwaniu.
Określ BindingFlags.NonPublic , aby uwzględnić w wyszukiwaniu typy niezagnieżdżone (czyli prywatne, wewnętrzne i chronione zagnieżdżone).
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.