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 pliku Type .
Przeciążenia
GetNestedType(String, BindingFlags) |
W przypadku przesłonięć w klasie pochodnej program wyszukuje określony typ zagnieżdżony przy użyciu określonych ograniczeń powiązania. |
GetNestedType(String) |
Wyszukuje publiczny zagnieżdżony typ o określonej nazwie. |
GetNestedType(String, BindingFlags)
W przypadku przesłonięć w klasie pochodnej program 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ę typu zagnieżdżonych do uzyskania.
- bindingAttr
- BindingFlags
Bitowa kombinacja wartości wyliczenia, które określają sposób przeprowadzania wyszukiwania.
-lub-
Default , aby zwrócić null
.
Zwraca
Obiekt reprezentujący zagnieżdżony typ, który spełnia określone wymagania, jeśli został znaleziony; w przeciwnym razie null
.
Implementuje
Wyjątki
name
to null
.
Uwagi
Użyj prostej nazwy klasy zagnieżdżonych dla name
klasy . Nie kwalifikują się one przy użyciu nazwy klasy zewnętrznej. W przypadku ogólnej zagnieżdżonych klas użyj nazwy mangled , czyli dołącz akcent nagie i liczbę parametrów ogólnych. Na przykład użyj ciągu "Wewnętrzny ` 1", aby uzyskać ogólną zagnieżdżone klasy Inner<T>
( 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 zagnieżdżonych typów do dołączyć do wyszukiwania:
Aby uzyskać zwrot, BindingFlags.Public należy określić wartość lub BindingFlags.NonPublic .
Określ, BindingFlags.Public aby uwzględnić publiczne zagnieżdżone typy w wyszukiwaniu.
Określ, aby uwzględnić w wyszukiwaniu niepublicznie zagnieżdżone typy (czyli typy prywatne, wewnętrzne i BindingFlags.NonPublic chronione).
Ta metoda zwraca tylko zagnieżdżone typy bieżącego typu. Nie przeszukuje on klas bazowych bieżącego typu. Aby znaleźć typy zagnieżdżone w klasach bazowych, należy przejść przez hierarchię dziedziczenia, GetNestedType wywołując na każdym poziomie.
BindingFlags.Instance i BindingFlags.Static są ignorowane.
Wywołanie tej metody tylko z flagą lub tylko flagą zwróci określone zagnieżdżone typy i nie BindingFlags.Public BindingFlags.NonPublic wymaga żadnych innych flag.
Aby uzyskać więcej informacji, zobacz System.Reflection.BindingFlags.
Jeśli bieżąca reprezentuje parametr typu w definicji typu ogólnego lub metody ogólnej, ta metoda wyszukuje zagnieżdżone Type 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 reprezentuje typ ogólny zdefiniowany w języku C#, Visual Basic lub C++, wszystkie zagnieżdżone typy są ogólne, nawet jeśli nie mają własnych Type parametrów ogólnych. Nie jest to konieczne w przypadku typów zagnieżdżonych zdefiniowanych w zestawach dynamicznych lub skompilowanych za pomocąIlasm.exe (asembler IL).
Aby uzyskać informacje na temat zagnieżdżonych typów ogólnych i konstruowania zagnieżdżonych typów ogólnych na podstawie ich definicji typów ogólnych, zobacz MakeGenericType .
Zobacz też
Dotyczy
GetNestedType(String)
Wyszukuje publiczny zagnieżdżony typ 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ę typu zagnieżdżonych do uzyskania.
Zwraca
Obiekt reprezentujący publiczny zagnieżdżony typ o określonej nazwie, jeśli został znaleziony; w przeciwnym razie null
.
Implementuje
Wyjątki
name
to null
.
Uwagi
W wyszukiwaniu name
jest wielkość liter.
Użyj prostej nazwy klasy zagnieżdżonych dla name
klasy . Nie kwalifikują się one przy użyciu nazwy klasy zewnętrznej. W przypadku ogólnej zagnieżdżonych klas użyj nazwy mangled , czyli dołącz akcent akcentu wiodącego i liczbę argumentów ogólnych. Na przykład użyj ciągu "Wewnętrzny ` 1", aby uzyskać ogólną zagnieżdżone klasy Inner<T>
( 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, jakie składowe klasy bazowej są zwracane przez metody Get
podczas odzwierciedlania w typie.
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żąca reprezentuje parametr typu w definicji typu ogólnego lub metody ogólnej, ta metoda wyszukuje zagnieżdżone Type 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 reprezentuje typ ogólny zdefiniowany w języku C#, Visual Basic lub C++, wszystkie zagnieżdżone typy są ogólne, nawet jeśli nie mają własnych Type parametrów ogólnych. Nie jest to konieczne w przypadku typów zagnieżdżonych zdefiniowanych w zestawach dynamicznych lub skompilowanych za pomocąIlasm.exe (asembler IL).
Aby uzyskać informacje na temat zagnieżdżonych typów ogólnych i konstruowania zagnieżdżonych typów ogólnych na podstawie ich definicji typów ogólnych, zobacz MakeGenericType .