Type.GetNestedType Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un tipo specifico annidato all'interno dell'oggetto corrente Type.
Overload
| Nome | Descrizione |
|---|---|
| GetNestedType(String, BindingFlags) |
In caso di override in una classe derivata, cerca il tipo annidato specificato usando i vincoli di associazione specificati. |
| GetNestedType(String) |
Cerca il tipo annidato pubblico con il nome specificato. |
GetNestedType(String, BindingFlags)
- Origine:
- Type.cs
- Origine:
- Type.cs
- Origine:
- Type.cs
- Origine:
- Type.cs
- Origine:
- Type.cs
In caso di override in una classe derivata, cerca il tipo annidato specificato usando i vincoli di associazione specificati.
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
Parametri
- name
- String
Stringa contenente il nome del tipo annidato da ottenere.
- bindingAttr
- BindingFlags
Combinazione bit per bit dei valori di enumerazione che specificano come viene eseguita la ricerca.
oppure
Default per restituire null.
Valori restituiti
Oggetto che rappresenta il tipo annidato che soddisfa i requisiti specificati, se trovato; in caso contrario, null.
Implementazioni
- Attributi
Eccezioni
name è null.
Commenti
Usare il nome semplice della classe annidata per name. Non qualificarlo con il nome della classe esterna. Per una classe nidificata generica, usare il nome mangled, ovvero aggiungere un accento grave e il numero di parametri generici. Ad esempio, usare la stringa "Inner'1" per ottenere la classe nidificata generica Inner<T> (Inner(Of T) in Visual Basic). Non includere la sintassi specifica del linguaggio per i parametri di tipo.
I flag di filtro seguenti BindingFlags possono essere usati per definire i tipi annidati da includere nella ricerca:
È necessario specificare BindingFlags.Public o BindingFlags.NonPublic per ottenere un ritorno.
Specificare BindingFlags.Public per includere i tipi annidati pubblici nella ricerca.
Specificare BindingFlags.NonPublic di includere tipi annidati non pubblici , ovvero privati, interni e protetti, nella ricerca.
Questo metodo restituisce solo i tipi annidati del tipo corrente. Non esegue ricerche nelle classi di base del tipo corrente. Per trovare i tipi annidati nelle classi di base, è necessario esaminare la gerarchia di ereditarietà, chiamando GetNestedType a ogni livello.
BindingFlags.Instance e BindingFlags.Static vengono ignorati.
La chiamata a questo metodo con solo il BindingFlags.Public flag o solo il BindingFlags.NonPublic flag restituirà i tipi annidati specificati e non richiede altri flag.
Per altre informazioni, vedere System.Reflection.BindingFlags.
Se l'oggetto corrente Type rappresenta un parametro di tipo nella definizione di un tipo generico o di un metodo generico, questo metodo cerca i tipi annidati del vincolo di classe.
Se un tipo annidato è generico, questo metodo restituisce la relativa definizione di tipo generico. Questo vale anche se il tipo generico di inclusione è un tipo costruito chiuso.
Annotazioni
Se l'Type corrente rappresenta un tipo generico definito in C#, Visual Basic o C++, i relativi tipi annidati sono tutti generici anche se non hanno parametri generici propri. Questo non è necessariamente vero dei tipi annidati definiti negli assembly dinamici o compilati con il Ilasm.exe (Assembler IL).
Per informazioni sui tipi generici annidati e sulla costruzione di tipi generici annidati dalle definizioni di tipo generico, vedere MakeGenericType.
Vedi anche
Si applica a
GetNestedType(String)
- Origine:
- Type.cs
- Origine:
- Type.cs
- Origine:
- Type.cs
- Origine:
- Type.cs
- Origine:
- Type.cs
Cerca il tipo annidato pubblico con il nome specificato.
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
Parametri
- name
- String
Stringa contenente il nome del tipo annidato da ottenere.
Valori restituiti
Oggetto che rappresenta il tipo annidato pubblico con il nome specificato, se trovato; in caso contrario, null.
Implementazioni
- Attributi
Eccezioni
name è null.
Commenti
La ricerca name fa distinzione tra maiuscole e minuscole.
Usare il nome semplice della classe annidata per name. Non qualificarlo con il nome della classe esterna. Per una classe nidificata generica, usare il nome mangled, ovvero aggiungere un accento grave e il numero di argomenti generici. Ad esempio, usare la stringa "Inner'1" per ottenere la classe nidificata generica Inner<T> (Inner(Of T) in Visual Basic). Non includere la sintassi specifica del linguaggio per i parametri di tipo.
Nella tabella seguente vengono illustrati i membri della classe base restituiti dai Get metodi quando si analizza un tipo.
| Tipo di membro | Statico | Non statico |
|---|---|---|
| Costruttore | No | No |
| Campo | No | Sì. Un campo è sempre nascosto per nome e firma. |
| Event | Non applicabile | La regola di sistema dei tipi comune è che l'ereditarietà è uguale a quella dei metodi che implementano la proprietà . La reflection considera le proprietà come hide-by-name-and-signature. Vedere la nota 2 di seguito. |
| metodo | No | Sì. Un metodo (virtuale e non virtuale) può essere nascosto per nome o nascosto per nome e firma. |
| Tipo annidato | No | No |
| Proprietà | Non applicabile | La regola di sistema dei tipi comune è che l'ereditarietà è uguale a quella dei metodi che implementano la proprietà . La reflection considera le proprietà come hide-by-name-and-signature. Vedere la nota 2 di seguito. |
Hide-by-name-and-signature considera tutte le parti della firma, inclusi modificatori personalizzati, tipi restituiti, tipi di parametro, sentinel e convenzioni di chiamata non gestite. Si tratta di un confronto binario.
In riflessione, le proprietà e gli eventi sono hide-by-name-and-signature. Se si dispone di una proprietà con una funzione di accesso get e set nella classe base, ma la classe derivata ha solo una funzione di accesso get, la proprietà della classe derivata nasconde la proprietà della classe base e non sarà possibile accedere al setter nella classe base.
Gli attributi personalizzati non fanno parte del sistema di tipi comune.
Se l'oggetto corrente Type rappresenta un parametro di tipo nella definizione di un tipo generico o di un metodo generico, questo metodo cerca i tipi annidati del vincolo di classe.
Se un tipo annidato è generico, questo metodo restituisce la relativa definizione di tipo generico. Questo vale anche se il tipo generico di inclusione è un tipo costruito chiuso.
Annotazioni
Se l'Type corrente rappresenta un tipo generico definito in C#, Visual Basic o C++, i relativi tipi annidati sono tutti generici anche se non hanno parametri generici propri. Questo non è necessariamente vero dei tipi annidati definiti negli assembly dinamici o compilati con il Ilasm.exe (Assembler IL).
Per informazioni sui tipi generici annidati e sulla costruzione di tipi generici annidati dalle definizioni di tipo generico, vedere MakeGenericType.