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 Type corrente.
Overload
GetNestedType(String) |
Cerca il tipo annidato pubblico con il nome specificato. |
GetNestedType(String, BindingFlags) |
Quando ne viene eseguito l'override in una classe derivata, cerca il tipo annidato specificato, usando i vincoli di binding specificati. |
GetNestedType(String)
- 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);
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
Parametri
- name
- String
Stringa che contiene il nome del tipo annidato da ottenere.
Restituisce
Oggetto che rappresenta il tipo annidato pubblico con il nome specificato, se disponibile; in caso contrario, null
.
Implementazioni
Eccezioni
name
è null
.
Commenti
La ricerca name
è 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 annidata 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 Inner<T>
annidata generica (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 di una classe base restituiti dai Get
metodi quando si riflette su un tipo.
Tipo di membro | Static | Non statico |
---|---|---|
Costruttore | No | No |
Campo | No | Sì. Un campo è sempre hide-by-name-and-signature. |
Evento | Non applicabile | La regola di sistema dei tipi comune è che l'ereditarietà è uguale a quella dei metodi che implementano la proprietà. Reflection tratta le proprietà come hide-by-name-and-signature. Vedere la nota 2 seguente. |
Metodo | No | Sì. Un metodo (sia virtuale che non virtuale) può essere hide-by-name o hide-by-name-and-signature. |
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à. Reflection tratta le proprietà come hide-by-name-and-signature. Vedere la nota 2 seguente. |
Hide-by-name-and-signature considera tutte le parti della firma, inclusi modificatori personalizzati, tipi restituiti, tipi di parametri, sentinelle e convenzioni di chiamata non gestite. Si tratta di un confronto binario.
Per la reflection, le proprietà e gli eventi sono nascondi per nome e firma. Se si dispone di una proprietà con una funzione di accesso get e un set nella classe base, ma la classe derivata ha solo una funzione di accesso get, la proprietà 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 comuni.
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 è vero anche se il tipo generico racchiuso è un tipo costruito chiuso.
Nota
Se l'oggetto corrente Type rappresenta un tipo generico definito in C#, Visual Basic o C++, i relativi tipi annidati sono tutti generici anche se non hanno parametri generici di propria proprietà. Questo non è necessariamente vero dei tipi annidati definiti negli assembly dinamici o compilati con il Ilasm.exe (IL Assembler).
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, BindingFlags)
- Origine:
- Type.cs
- Origine:
- Type.cs
- Origine:
- Type.cs
Quando ne viene eseguito l'override in una classe derivata, cerca il tipo annidato specificato, usando i vincoli di binding specificati.
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
Parametri
- name
- String
Stringa che contiene il nome del tipo annidato da ottenere.
- bindingAttr
- BindingFlags
Combinazione bit per bit di valori di enumerazione che specifica il modo in cui viene eseguita la ricerca.
-oppure-
Default per restituire null
.
Restituisce
Oggetto che rappresenta il tipo annidato corrispondente ai requisiti specificati, se è stato trovato; in caso contrario, null
.
Implementazioni
Eccezioni
name
è null
.
Commenti
Usare il nome semplice della classe annidata per name
. Non qualificarlo con il nome della classe esterna. Per una classe annidata 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 Inner<T>
annidata generica (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 ottenere un ritorno.
Specificare BindingFlags.Public per includere tipi nidificati pubblici nella ricerca.
Specificare BindingFlags.NonPublic per 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 seguire 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 è vero anche se il tipo generico racchiuso è un tipo costruito chiuso.
Nota
Se l'oggetto corrente Type rappresenta un tipo generico definito in C#, Visual Basic o C++, i relativi tipi annidati sono tutti generici anche se non hanno parametri generici di propria proprietà. Questo non è necessariamente vero dei tipi annidati definiti negli assembly dinamici o compilati con il Ilasm.exe (IL Assembler).
Per informazioni sui tipi generici annidati e sulla costruzione di tipi generici annidati dalle definizioni di tipo generico, vedere MakeGenericType.