Condividi tramite


Type.GetNestedType Metodo

Definizione

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.
  1. 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.

  2. 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.

  3. 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:

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.

Vedi anche

Si applica a