Type.GetNestedType Método

Definição

Obtém um tipo específico aninhado no Type atual.Gets a specific type nested within the current Type.

Sobrecargas

GetNestedType(String, BindingFlags)

Quando substituído em uma classe derivada, pesquisa as propriedades do tipo aninhado especificado, usando as restrições de associação especificadas.When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.

GetNestedType(String)

Pesquisa o tipo aninhado público com o nome especificado.Searches for the public nested type with the specified name.

GetNestedType(String, BindingFlags)

Quando substituído em uma classe derivada, pesquisa as propriedades do tipo aninhado especificado, usando as restrições de associação 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

A cadeia de caracteres que contém o nome do tipo aninhado a ser obtido.The string containing the name of the nested type to get.

bindingAttr
BindingFlags

Uma combinação bit a bit dos valores de enumeração que especificam como a pesquisa é realizada.A bitwise combination of the enumeration values that specify how the search is conducted.

- ou --or- Default para retornar null.Default to return null.

Retornos

Um objeto que representa o tipo aninhado que corresponde aos requisitos especificados, se encontrado; caso contrário, null.An object representing the nested type that matches the specified requirements, if found; otherwise, null.

Implementações

Exceções

name é null.name is null.

Comentários

Use o nome simples da classe aninhada para name.Use the simple name of the nested class for name. Não o qualifique com o nome da classe externa.Do not qualify it with the name of the outer class. Para uma classe aninhada genérica, use o nome desconfigurado – ou seja, acrescente um acento grave e o 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 exemplo, use a cadeia de caracteres`"Inner 1" para obter a classe Inner<T> aninhada genérica (Inner(Of T) em Visual Basic).For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). Não inclua a sintaxe específica do idioma para parâmetros de tipo.Do not include language-specific syntax for type parameters.

Os seguintes BindingFlags sinalizadores de filtro podem ser usados para definir quais tipos aninhados serão incluídos na pesquisa:The following BindingFlags filter flags can be used to define which nested types to include in the search:

Esse método retorna apenas os tipos aninhados do tipo atual.This method returns only the nested types of the current type. Ele não pesquisa as classes base do tipo atual.It does not search the base classes of the current type. Para localizar tipos que são aninhados em classes base, você deve percorrer a hierarquia de herança GetNestedType , chamando em cada nível.To find types that are nested in base classes, you must walk the inheritance hierarchy, calling GetNestedType at each level.

BindingFlags.Instancee BindingFlags.Static são ignorados.BindingFlags.Instance and BindingFlags.Static are ignored.

Chamar esse método somente com o BindingFlags.Public sinalizador ou apenas o BindingFlags.NonPublic sinalizador retornará os tipos aninhados especificados e não exigirá nenhum outro sinalizador.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.

Consulte System.Reflection.BindingFlags para obter mais informações.See System.Reflection.BindingFlags for more information.

Caso o Type atual represente um parâmetro de tipo na definição de um tipo genérico ou um método genérico, este método pesquisa os tipos aninhados da restrição de 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 um tipo aninhado for genérico, este método retornará sua definição de tipo genérico.If a nested type is generic, this method returns its generic type definition. Isso será verdadeiro mesmo se o tipo genérico delimitador for um tipo construído fechado.This is true even if the enclosing generic type is a closed constructed type.

Observação

Caso o Type atual represente um tipo genérico definido no C#, no Visual Basic ou no C++, seus tipos aninhados são todos genéricos mesmo que não tenham parâmetros genéricos próprios.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. Isso não é necessariamente verdadeiro para tipos aninhados definidos em assemblies dinâmicos ou compilados com o Ilasm. exe (assembler Il).This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

Para obter informações sobre tipos genéricos aninhados e sobre como construir tipos genéricos aninhados das definições de tipo genérico, consulte MakeGenericType.For information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

Veja também

GetNestedType(String)

Pesquisa o tipo aninhado público com o nome 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

A cadeia de caracteres que contém o nome do tipo aninhado a ser obtido.The string containing the name of the nested type to get.

Retornos

Um objeto que representa o tipo aninhado público com o nome especificado, se encontrado; caso contrário, null.An object representing the public nested type with the specified name, if found; otherwise, null.

Implementações

Exceções

name é null.name is null.

Comentários

A pesquisa de name diferencia maiúsculas de minúsculas.The search for name is case-sensitive.

Use o nome simples da classe aninhada para name.Use the simple name of the nested class for name. Não o qualifique com o nome da classe externa.Do not qualify it with the name of the outer class. Para uma classe aninhada genérica, use o nome desconfigurado – ou seja, acrescente um acento grave e o 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 exemplo, use a cadeia de caracteres`"Inner 1" para obter a classe Inner<T> aninhada genérica (Inner(Of T) em Visual Basic).For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). Não inclua a sintaxe específica do idioma para parâmetros de tipo.Do not include language-specific syntax for type parameters.

A tabela a seguir mostra quais membros de uma classe base são retornados pelos métodos Get durante a reflexão em um tipo.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

Tipo do membroMember Type EstáticoStatic Não estáticoNon-Static
ConstrutorConstructor NãoNo NãoNo
CampoField NãoNo Sim.Yes. Um campo permanece sempre oculto por nome e assinatura.A field is always hide-by-name-and-signature.
eventoEvent Não aplicávelNot applicable A regra de sistema do tipo comum é que a herança é a mesma dos métodos que implementam a propriedade.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflexão trata propriedades como ocultas por nome e assinatura.Reflection treats properties as hide-by-name-and-signature. Consulte a observação 2 abaixo.See note 2 below.
MétodoMethod NãoNo Sim.Yes. Um método (virtual e não virtual) pode permanecer oculto por nome ou por nome e assinatura.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Tipo aninhadoNested Type NãoNo NãoNo
PropriedadeProperty Não aplicávelNot applicable A regra de sistema do tipo comum é que a herança é a mesma dos métodos que implementam a propriedade.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflexão trata propriedades como ocultas por nome e assinatura.Reflection treats properties as hide-by-name-and-signature. Consulte a observação 2 abaixo.See note 2 below.
  1. Oculto por nome e assinatura considera todas as partes da assinatura, inclusive modificadores personalizados, tipos de retorno, tipos de parâmetro, sentinelas e convenções de chamada não gerenciadas.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 é uma comparação binária.This is a binary comparison.

  2. Para reflexão, propriedades e eventos permanecem ocultos por nome e assinatura.For reflection, properties and events are hide-by-name-and-signature. Se você tiver uma propriedade com um acessador get e set na classe base, mas a classe derivada tiver apenas um acessador get, a propriedade de classe derivada ocultará a propriedade da classe base e você não poderá acessar o setter na classe 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. Atributos personalizados não fazem parte do sistema de tipo comum.Custom attributes are not part of the common type system.

Caso o Type atual represente um parâmetro de tipo na definição de um tipo genérico ou um método genérico, este método pesquisa os tipos aninhados da restrição de 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 um tipo aninhado for genérico, este método retornará sua definição de tipo genérico.If a nested type is generic, this method returns its generic type definition. Isso será verdadeiro mesmo se o tipo genérico delimitador for um tipo construído fechado.This is true even if the enclosing generic type is a closed constructed type.

Observação

Caso o Type atual represente um tipo genérico definido no C#, no Visual Basic ou no C++, seus tipos aninhados são todos genéricos mesmo que não tenham parâmetros genéricos próprios.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. Isso não é necessariamente verdadeiro para tipos aninhados definidos em assemblies dinâmicos ou compilados com o Ilasm. exe (assembler Il).This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

Para obter informações sobre tipos genéricos aninhados e sobre como construir tipos genéricos aninhados das definições de tipo genérico, consulte MakeGenericType.For information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

Veja também

Aplica-se a