Type.GetNestedType Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar en specifik typ kapslad i den aktuella Type.
Överlagringar
| Name | Description |
|---|---|
| GetNestedType(String, BindingFlags) |
När den åsidosättas i en härledd klass söker du efter den angivna kapslade typen med hjälp av de angivna bindningsbegränsningarna. |
| GetNestedType(String) |
Söker efter den offentliga kapslade typen med det angivna namnet. |
GetNestedType(String, BindingFlags)
- Källa:
- Type.cs
- Källa:
- Type.cs
- Källa:
- Type.cs
- Källa:
- Type.cs
- Källa:
- Type.cs
När den åsidosättas i en härledd klass söker du efter den angivna kapslade typen med hjälp av de angivna bindningsbegränsningarna.
public:
abstract Type ^ GetNestedType(System::String ^ name, System::Reflection::BindingFlags bindingAttr);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicNestedTypes | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes)]
public abstract Type? GetNestedType(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);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicNestedTypes | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes)>]
abstract member GetNestedType : string * System.Reflection.BindingFlags -> Type
abstract member GetNestedType : string * System.Reflection.BindingFlags -> Type
Public MustOverride Function GetNestedType (name As String, bindingAttr As BindingFlags) As Type
Parametrar
- name
- String
Strängen som innehåller namnet på den kapslade typ som ska hämtas.
- bindingAttr
- BindingFlags
En bitvis kombination av uppräkningsvärdena som anger hur sökningen ska utföras.
-eller-
Default för att returnera null.
Returer
Ett objekt som representerar den kapslade typen som matchar de angivna kraven, om det hittas. annars . null
Implementeringar
- Attribut
Undantag
name är null.
Kommentarer
Använd det enkla namnet på den kapslade klassen för name. Kvalificera den inte med namnet på den yttre klassen. För en generisk kapslad klass använder du det manglade namnet , det vill: lägg till en allvarlig accent och antalet generiska parametrar. Använd till exempel strängen "Inner'1" för att hämta den generiska kapslade klassen Inner<T> (Inner(Of T) i Visual Basic). Inkludera inte språkspecifik syntax för typparametrar.
Följande BindingFlags filterflaggor kan användas för att definiera vilka kapslade typer som ska ingå i sökningen:
Du måste ange antingen BindingFlags.Public eller BindingFlags.NonPublic för att få en retur.
Ange BindingFlags.Public att offentliga kapslade typer ska inkluderas i sökningen.
Ange BindingFlags.NonPublic om du vill inkludera icke-offentliga kapslade typer (dvs. privata, interna och skyddade kapslade typer) i sökningen.
Den här metoden returnerar endast kapslade typer av den aktuella typen. Den söker inte efter basklasserna av den aktuella typen. Om du vill hitta typer som är kapslade i basklasser måste du gå igenom arvshierarkin och anropa GetNestedType på varje nivå.
BindingFlags.Instance och BindingFlags.Static ignoreras.
Om du anropar den här metoden med endast BindingFlags.Public flaggan eller bara BindingFlags.NonPublic flaggan returneras de angivna kapslade typerna och kräver inga andra flaggor.
Mer information finns i System.Reflection.BindingFlags.
Om den aktuella Type representerar en typparameter i definitionen av en allmän typ eller allmän metod söker den här metoden igenom de kapslade typerna av klassvillkoret.
Om en kapslad typ är generisk returnerar den här metoden dess generiska typdefinition. Detta gäller även om den omslutande generiska typen är en stängd konstruktionstyp.
Note
Om den aktuella Type representerar en allmän typ som definierats i C#, Visual Basic eller C++, är dess kapslade typer alla generiska även om de inte har några egna generiska parametrar. Detta gäller inte nödvändigtvis kapslade typer som definierats i dynamiska sammansättningar eller kompilerats med Ilasm.exe (IL Assembler).
Information om kapslade generiska typer och om hur du skapar kapslade generiska typer från deras generiska typdefinitioner finns i MakeGenericType.
Se även
Gäller för
GetNestedType(String)
- Källa:
- Type.cs
- Källa:
- Type.cs
- Källa:
- Type.cs
- Källa:
- Type.cs
- Källa:
- Type.cs
Söker efter den offentliga kapslade typen med det angivna namnet.
public:
Type ^ GetNestedType(System::String ^ name);
public:
virtual Type ^ GetNestedType(System::String ^ name);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes)]
public Type? GetNestedType(string name);
public Type GetNestedType(string name);
public Type? GetNestedType(string name);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes)>]
member this.GetNestedType : string -> Type
member this.GetNestedType : string -> Type
abstract member GetNestedType : string -> Type
override this.GetNestedType : string -> Type
Public Function GetNestedType (name As String) As Type
Parametrar
- name
- String
Strängen som innehåller namnet på den kapslade typ som ska hämtas.
Returer
Ett objekt som representerar den offentliga kapslade typen med det angivna namnet, om det hittas; annars . null
Implementeringar
- Attribut
Undantag
name är null.
Kommentarer
Sökningen efter name är skiftlägeskänslig.
Använd det enkla namnet på den kapslade klassen för name. Kvalificera den inte med namnet på den yttre klassen. För en generisk kapslad klass använder du det manglade namnet , det vill: lägg till en allvarlig accent och antalet generiska argument. Använd till exempel strängen "Inner'1" för att hämta den generiska kapslade klassen Inner<T> (Inner(Of T) i Visual Basic). Inkludera inte språkspecifik syntax för typparametrar.
I följande tabell visas vilka medlemmar i en basklass som returneras av metoderna när de Get reflekterar över en typ.
| Medlemstyp | Static | Icke-statisk |
|---|---|---|
| Constructor | No | No |
| Fält | No | Yes. Ett fält är alltid dolt genom namn och signatur (hide-by-name-and-signature). |
| Händelse | Ej tillämpligt | Den vanliga typen av systemregel är att arvet är detsamma som för de metoder som implementerar egenskapen. Reflektion behandlar egenskaper som hide-by-name-and-signature. Se anmärkning 2 nedan. |
| Metod | No | Yes. En metod (både virtuell och icke-virtuell) kan vara hide-by-name eller hide-by-name-and-signature. |
| Kapslad typ | No | No |
| Fastighet | Ej tillämpligt | Den vanliga typen av systemregel är att arvet är detsamma som för de metoder som implementerar egenskapen. Reflektion behandlar egenskaper som hide-by-name-and-signature. Se anmärkning 2 nedan. |
Dölj efter namn och signatur tar hänsyn till alla delar av signaturen, inklusive anpassade modifierare, returtyper, parametertyper, sentinels och ohanterade anropskonventioner. Det här är en binär jämförelse.
För reflektion är egenskaper och händelser dolda genom namn och signatur. Om du har en egenskap med både en get- och en set-accessor i basklassen, men den härledda klassen bara har en get-accessor, döljer egenskapen i den härledda klassen basklassegenskapen och du kommer inte att kunna komma åt set-accessorn i basklassen.
Anpassade attribut ingår inte i det vanliga typsystemet.
Om den aktuella Type representerar en typparameter i definitionen av en allmän typ eller allmän metod söker den här metoden igenom de kapslade typerna av klassvillkoret.
Om en kapslad typ är generisk returnerar den här metoden dess generiska typdefinition. Detta gäller även om den omslutande generiska typen är en stängd konstruktionstyp.
Note
Om den aktuella Type representerar en allmän typ som definierats i C#, Visual Basic eller C++, är dess kapslade typer alla generiska även om de inte har några egna generiska parametrar. Detta gäller inte nödvändigtvis kapslade typer som definierats i dynamiska sammansättningar eller kompilerats med Ilasm.exe (IL Assembler).
Information om kapslade generiska typer och om hur du skapar kapslade generiska typer från deras generiska typdefinitioner finns i MakeGenericType.