Type.GetNestedType Método

Definición

Obtiene un tipo específico anidado dentro del objeto Type actual.Gets a specific type nested within the current Type.

Sobrecargas

GetNestedType(String, BindingFlags)

Cuando se invalida en una clase derivada, busca el tipo anidado especificado y aplica las restricciones de enlace especificadas.When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.

GetNestedType(String)

Busca el tipo anidado público con el nombre especificado.Searches for the public nested type with the specified name.

GetNestedType(String, BindingFlags)

Cuando se invalida en una clase derivada, busca el tipo anidado especificado y aplica las restricciones de enlace especificadas.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

Parámetros

name
String

Cadena que contiene el nombre del tipo anidado que se va a obtener.The string containing the name of the nested type to get.

bindingAttr
BindingFlags

Combinación bit a bit de los valores de enumeración que especifican cómo se realiza la búsqueda.A bitwise combination of the enumeration values that specify how the search is conducted.

o bien-or- Default para devolver null.Default to return null.

Devoluciones

Objeto que representa el tipo anidado que cumple los requisitos especificados, si se encuentra; en caso contrario, es null.An object representing the nested type that matches the specified requirements, if found; otherwise, null.

Implementaciones

Excepciones

name es null.name is null.

Comentarios

Use el nombre simple de la clase anidada para name.Use the simple name of the nested class for name. No lo certifique con el nombre de la clase externa.Do not qualify it with the name of the outer class. En el caso de una clase anidada genérica, use el nombre con sufijo, es decir, anexe un acento grave y el número de parámetros genéricos.For a generic nested class, use the mangled name - that is, append a grave accent and the number of generic parameters. Por ejemplo, use la cadena "Inner`1" para obtener la clase anidada genérica Inner<T> (Inner(Of T) en Visual Basic).For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). No incluya la sintaxis específica del lenguaje para los parámetros de tipo.Do not include language-specific syntax for type parameters.

Se pueden usar las siguientes marcas de filtro de BindingFlags para definir los tipos anidados que se van a incluir en la búsqueda:The following BindingFlags filter flags can be used to define which nested types to include in the search:

Este método solo devuelve los tipos anidados del tipo actual.This method returns only the nested types of the current type. No busca en las clases base del tipo actual.It does not search the base classes of the current type. Para buscar tipos que están anidados en clases base, debe recorrer la jerarquía de herencia, llamando a GetNestedType en cada nivel.To find types that are nested in base classes, you must walk the inheritance hierarchy, calling GetNestedType at each level.

BindingFlags.Instance y BindingFlags.Static se omiten.BindingFlags.Instance and BindingFlags.Static are ignored.

Llamar a este método solo con la marca BindingFlags.Public o solo la marca BindingFlags.NonPublic devolverá los tipos anidados especificados y no requerirá ningún otro marcador.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.

Vea System.Reflection.BindingFlags para obtener más información.See System.Reflection.BindingFlags for more information.

Si el Type actual representa un parámetro de tipo en la definición de un tipo genérico o de un método genérico, este método busca en los tipos anidados de la restricción de clase.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.

Si un tipo anidado es genérico, este método devuelve su definición de tipo genérico.If a nested type is generic, this method returns its generic type definition. Esto es así incluso si el tipo genérico envolvente es un tipo construido cerrado.This is true even if the enclosing generic type is a closed constructed type.

Nota

Si el Type actual representa un tipo genérico definido en C#, Visual Basic o C++, sus tipos anidados son genéricos aunque no tengan parámetros genéricos propios.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. Esto no es necesariamente cierto en el caso de los tipos anidados definidos en ensamblados dinámicos o compilados con Ilasm. exe (ensamblador de IL).This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

Para obtener información sobre los tipos genéricos anidados y sobre la construcción de tipos genéricos anidados a partir de sus definiciones de tipos genéricos, vea MakeGenericType.For information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

Consulte también:

GetNestedType(String)

Busca el tipo anidado público con el nombre especificado.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

Parámetros

name
String

Cadena que contiene el nombre del tipo anidado que se va a obtener.The string containing the name of the nested type to get.

Devoluciones

Objeto que representa el tipo anidado público con el nombre especificado, si se encuentra; en caso contrario, null.An object representing the public nested type with the specified name, if found; otherwise, null.

Implementaciones

Excepciones

name es null.name is null.

Comentarios

La búsqueda de name distingue entre mayúsculas y minúsculas.The search for name is case-sensitive.

Use el nombre simple de la clase anidada para name.Use the simple name of the nested class for name. No lo certifique con el nombre de la clase externa.Do not qualify it with the name of the outer class. En el caso de una clase anidada genérica, use el nombre alterado, es decir, anexe un acento grave y el número de argumentos genéricos.For a generic nested class, use the mangled name - that is, append a grave accent and the number of generic arguments. Por ejemplo, use la cadena "Inner`1" para obtener la clase anidada genérica Inner<T> (Inner(Of T) en Visual Basic).For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). No incluya la sintaxis específica del lenguaje para los parámetros de tipo.Do not include language-specific syntax for type parameters.

En la tabla siguiente se muestra qué miembros de una clase base son devueltos por los métodos Get al reflejar en un tipo.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

Tipo de miembroMember Type EstáticoStatic No estáticaNon-Static
ConstructorConstructor NoNo NoNo
CampoField NoNo Sí.Yes. Un campo siempre se oculta por nombre y firma.A field is always hide-by-name-and-signature.
eventoEvent No es aplicableNot applicable La regla del sistema de tipos comunes es que la herencia es la misma que la de los métodos que implementan la propiedad.The common type system rule is that the inheritance is the same as that of the methods that implement the property. La reflexión trata las propiedades como ocultas por nombre y firma.Reflection treats properties as hide-by-name-and-signature. Vea la nota 2 a continuación.See note 2 below.
MétodoMethod NoNo Sí.Yes. Un método (tanto virtual como no virtual) se puede ocultar por nombre u ocultar por nombre y por firma.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Tipo anidadoNested Type NoNo NoNo
Propiedad.Property No es aplicableNot applicable La regla del sistema de tipos comunes es que la herencia es la misma que la de los métodos que implementan la propiedad.The common type system rule is that the inheritance is the same as that of the methods that implement the property. La reflexión trata las propiedades como ocultas por nombre y firma.Reflection treats properties as hide-by-name-and-signature. Vea la nota 2 a continuación.See note 2 below.
  1. Ocultar por nombre y firma tiene en cuenta todas las partes de la firma, incluidos los modificadores personalizados, los tipos de valor devuelto, los tipos de parámetros, los Sentinel y las convenciones de llamada no administradas.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. Esta es una comparación binaria.This is a binary comparison.

  2. En la reflexión, las propiedades y los eventos son Hide-by-Name y Signature.For reflection, properties and events are hide-by-name-and-signature. Si tiene una propiedad con un descriptor de acceso get y set en la clase base, pero la clase derivada solo tiene un descriptor de acceso get, la propiedad de la clase derivada oculta la propiedad de clase base y no podrá tener acceso al establecedor en la clase 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. Los atributos personalizados no forman parte del sistema de tipos comunes.Custom attributes are not part of the common type system.

Si el Type actual representa un parámetro de tipo en la definición de un tipo genérico o de un método genérico, este método busca en los tipos anidados de la restricción de clase.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.

Si un tipo anidado es genérico, este método devuelve su definición de tipo genérico.If a nested type is generic, this method returns its generic type definition. Esto es así incluso si el tipo genérico envolvente es un tipo construido cerrado.This is true even if the enclosing generic type is a closed constructed type.

Nota

Si el Type actual representa un tipo genérico definido en C#, Visual Basic o C++, sus tipos anidados son genéricos aunque no tengan parámetros genéricos propios.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. Esto no es necesariamente cierto en el caso de los tipos anidados definidos en ensamblados dinámicos o compilados con Ilasm. exe (ensamblador de IL).This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

Para obtener información sobre los tipos genéricos anidados y sobre la construcción de tipos genéricos anidados a partir de sus definiciones de tipos genéricos, vea MakeGenericType.For information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

Consulte también:

Se aplica a