Type.GetNestedType Metodo

Definizione

Ottiene un tipo specifico annidato all'interno dell'oggetto Type corrente.Gets a specific type nested within the current Type.

Overload

GetNestedType(String, BindingFlags)

Quando ne viene eseguito l'override in una classe derivata, cerca il tipo annidato specificato, usando i vincoli di binding specificati.When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.

GetNestedType(String)

Cerca il tipo annidato pubblico con il nome specificato.Searches for the public nested type with the specified name.

GetNestedType(String, BindingFlags)

Quando ne viene eseguito l'override in una classe derivata, cerca il tipo annidato specificato, usando i vincoli di binding specificati.When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.

public:
 abstract Type ^ GetNestedType(System::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.The string containing the name of the nested type to get.

bindingAttr
BindingFlags

Combinazione bit per bit di valori di enumerazione che specifica il modo in cui viene eseguita la ricerca.A bitwise combination of the enumeration values that specify how the search is conducted.

-oppure--or- Default per restituire null.Default to return null.

Restituisce

Oggetto che rappresenta il tipo annidato corrispondente ai requisiti specificati, se è stato trovato; in caso contrario, null.An object representing the nested type that matches the specified requirements, if found; otherwise, null.

Implementazioni

Eccezioni

name è null.name is null.

Commenti

Usare il nome semplice della classe annidata per name.Use the simple name of the nested class for name. Non qualificarla con il nome della classe esterna.Do not qualify it with the name of the outer class. Per una classe annidata generica, usare il nome modificato, ovvero aggiungere un accento grave e il numero di parametri generici.For a generic nested class, use the mangled name - that is, append a grave accent and the number of generic parameters. Usare, ad esempio, la stringa "`Inner 1" per ottenere la classe Inner<T> annidataInner(Of T) generica (in Visual Basic).For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). Non includere la sintassi specifica della lingua per i parametri di tipo.Do not include language-specific syntax for type parameters.

I flag BindingFlags di filtro seguenti possono essere usati per definire i tipi annidati da includere nella ricerca:The following BindingFlags filter flags can be used to define which nested types to include in the search:

Questo metodo restituisce solo i tipi annidati del tipo corrente.This method returns only the nested types of the current type. Non esegue la ricerca delle classi di base del tipo corrente.It does not search the base classes of the current type. Per trovare i tipi annidati nelle classi di base, è necessario esaminare la gerarchia di ereditarietà GetNestedType , chiamando a ogni livello.To find types that are nested in base classes, you must walk the inheritance hierarchy, calling GetNestedType at each level.

BindingFlags.Instancee BindingFlags.Static vengono ignorati.BindingFlags.Instance and BindingFlags.Static are ignored.

La chiamata a questo metodo solo BindingFlags.Public con il flag o BindingFlags.NonPublic solo il flag restituirà i tipi annidati specificati e non richiede altri flag.Calling this method with only the BindingFlags.Public flag or only the BindingFlags.NonPublic flag will return the specified nested types and does not require any other flags.

Per altre informazioni, vedere System.Reflection.BindingFlags.See System.Reflection.BindingFlags for more information.

Se l'oggetto Type corrente rappresenta un parametro di tipo nella definizione di un tipo o di un metodo generico, questo metodo cerca i tipi annidati del vincolo di classe.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the nested types of the class constraint.

Se un tipo annidato è generico, questo metodo restituisce la definizione di tipo generico.If a nested type is generic, this method returns its generic type definition. Questo vale anche se il tipo generico di inclusione è un tipo costruito chiuso.This is true even if the enclosing generic type is a closed constructed type.

Nota

Se l'oggetto Type corrente rappresenta un tipo generico definito C#in, Visual Basic o C++, i relativi tipi annidati sono tutti generici anche se non hanno parametri generici propri.If the current Type represents a generic type defined in C#, Visual Basic, or C++, its nested types are all generic even if they have no generic parameters of their own. Non si tratta necessariamente di tipi annidati definiti in assembly dinamici o compilati con Ilasm. exe (assembler il).This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

Per informazioni sui tipi generici annidati e sulla costruzione di tipi generici annidati dalle rispettive definizioni MakeGenericTypedi tipo generico, vedere.For information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

Vedi anche

GetNestedType(String)

Cerca il tipo annidato pubblico con il nome specificato.Searches for the public nested type with the specified name.

public:
 virtual Type ^ GetNestedType(System::String ^ name);
public Type GetNestedType (string name);
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.The string containing the name of the nested type to get.

Restituisce

Oggetto che rappresenta il tipo annidato pubblico con il nome specificato, se disponibile; in caso contrario, null.An object representing the public nested type with the specified name, if found; otherwise, null.

Implementazioni

Eccezioni

name è null.name is null.

Commenti

La ricerca di name fa distinzione tra maiuscole e minuscole.The search for name is case-sensitive.

Usare il nome semplice della classe annidata per name.Use the simple name of the nested class for name. Non qualificarla con il nome della classe esterna.Do not qualify it with the name of the outer class. Per una classe annidata generica, usare il nome modificato, ovvero aggiungere un accento grave e il numero di argomenti generici.For a generic nested class, use the mangled name - that is, append a grave accent and the number of generic arguments. Usare, ad esempio, la stringa "`Inner 1" per ottenere la classe Inner<T> annidataInner(Of T) generica (in Visual Basic).For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). Non includere la sintassi specifica della lingua per i parametri di tipo.Do not include language-specific syntax for type parameters.

La tabella seguente mostra quali membri di una classe di base vengono restituiti dai Get metodi durante la reflection su un tipo.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

Tipo di membroMember Type StaticStatic Non staticoNon-Static
CostruttoreConstructor NoNo NoNo
CampoField NoNo Sì.Yes. Un campo è sempre nascosto per nome e firma.A field is always hide-by-name-and-signature.
eventEvent Non applicabileNot applicable La regola Common Type System è che l'ereditarietà è identica a quella dei metodi che implementano la proprietà.The common type system rule is that the inheritance is the same as that of the methods that implement the property. La reflection considera le proprietà come nascoste per nome e firma.Reflection treats properties as hide-by-name-and-signature. Vedere la nota 2 di seguito.See note 2 below.
MetodoMethod NoNo Sì.Yes. Un metodo (sia virtuale che non virtuale) può essere nascosto in base al nome o nascosto per nome e firma.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Tipo annidatoNested Type NoNo NoNo
ProprietàProperty Non applicabileNot applicable La regola Common Type System è che l'ereditarietà è identica a quella dei metodi che implementano la proprietà.The common type system rule is that the inheritance is the same as that of the methods that implement the property. La reflection considera le proprietà come nascoste per nome e firma.Reflection treats properties as hide-by-name-and-signature. Vedere la nota 2 di seguito.See note 2 below.
  1. Hide-by-Name-and-signature prende in considerazione tutte le parti della firma, inclusi i modificatori personalizzati, i tipi restituiti, i tipi di parametro, le sentinelle e le convenzioni di chiamata non gestite.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Si tratta di un confronto binario.This is a binary comparison.

  2. Per la reflection, le proprietà e gli eventi sono nascosti per nome e firma.For reflection, properties and events are hide-by-name-and-signature. Se si dispone di una proprietà con una funzione di accesso get e set nella classe di base, ma la classe derivata dispone solo di una funzione di accesso get, la proprietà della classe derivata nasconde la proprietà della classe base e non sarà possibile accedere al setter sulla classe di base.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Gli attributi personalizzati non fanno parte del Common Type System.Custom attributes are not part of the common type system.

Se l'oggetto Type corrente rappresenta un parametro di tipo nella definizione di un tipo o di un metodo generico, questo metodo cerca i tipi annidati del vincolo di classe.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the nested types of the class constraint.

Se un tipo annidato è generico, questo metodo restituisce la definizione di tipo generico.If a nested type is generic, this method returns its generic type definition. Questo vale anche se il tipo generico di inclusione è un tipo costruito chiuso.This is true even if the enclosing generic type is a closed constructed type.

Nota

Se l'oggetto Type corrente rappresenta un tipo generico definito C#in, Visual Basic o C++, i relativi tipi annidati sono tutti generici anche se non hanno parametri generici propri.If the current Type represents a generic type defined in C#, Visual Basic, or C++, its nested types are all generic even if they have no generic parameters of their own. Non si tratta necessariamente di tipi annidati definiti in assembly dinamici o compilati con Ilasm. exe (assembler il).This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

Per informazioni sui tipi generici annidati e sulla costruzione di tipi generici annidati dalle rispettive definizioni MakeGenericTypedi tipo generico, vedere.For information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

Vedi anche

Si applica a