Partilhar via


Type.GetNestedType Método

Definição

Obtém um tipo específico aninhado no Type atual.

Sobrecargas

GetNestedType(String)

Pesquisa o tipo aninhado público com o nome especificado.

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.

GetNestedType(String)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa o tipo aninhado público com o nome especificado.

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

Parâmetros

name
String

A cadeia de caracteres que contém o nome do tipo aninhado a ser obtido.

Retornos

Um objeto que representa o tipo aninhado público com o nome especificado, se encontrado; caso contrário, null.

Implementações

Exceções

name é null.

Comentários

A pesquisa de name diferencia maiúsculas de minúsculas.

Use o nome simples da classe aninhada para name. Não o qualifique com o nome da classe externa. Para uma classe aninhada genérica, use o nome mutilado , ou seja, acrescente um acento grave e o número de argumentos genéricos. Por exemplo, use a cadeia de caracteres "Inner'1" para obter a classe Inner<T> aninhada genérica (Inner(Of T) no Visual Basic). Não inclua a sintaxe específica do idioma para parâmetros de tipo.

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.

Tipo do membro Estático Não estático
Construtor Não Não
Campo Não Sim. Um campo permanece sempre oculto por nome e assinatura.
Evento Não aplicável A regra de sistema do tipo comum é que a herança é a mesma dos métodos que implementam a propriedade. Reflexão trata propriedades como ocultas por nome e assinatura. Consulte a observação 2 abaixo.
Método Não Sim. Um método (virtual e não virtual) pode permanecer oculto por nome ou por nome e assinatura.
Tipo aninhado Não Não
Propriedade Não aplicável A regra de sistema do tipo comum é que a herança é a mesma dos métodos que implementam a propriedade. Reflexão trata propriedades como ocultas por nome e assinatura. Consulte a observação 2 abaixo.
  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. Esta é uma comparação binária.

  2. Para reflexão, propriedades e eventos permanecem ocultos por nome e assinatura. 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.

  3. Atributos personalizados não fazem parte do sistema de tipo comum.

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.

Se um tipo aninhado for genérico, este método retornará sua definição de tipo genérico. Isso será verdadeiro mesmo se o tipo genérico delimitador for um tipo construído fechado.

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. Isso não é necessariamente verdadeiro para tipos aninhados definidos em assemblies dinâmicos ou compilados com o 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.

Confira também

Aplica-se a

GetNestedType(String, BindingFlags)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Quando substituído em uma classe derivada, pesquisa as propriedades do tipo aninhado especificado, usando as restrições de associação especificadas.

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

Parâmetros

name
String

A cadeia de caracteres que contém o nome do tipo aninhado a ser obtido.

bindingAttr
BindingFlags

Uma combinação bit a bit dos valores de enumeração que especificam como a pesquisa é realizada.

- ou -

Default para retornar null.

Retornos

Um objeto que representa o tipo aninhado que corresponde aos requisitos especificados, se encontrado; caso contrário, null.

Implementações

Exceções

name é null.

Comentários

Use o nome simples da classe aninhada para name. Não o qualifique com o nome da classe externa. Para uma classe aninhada genérica, use o nome mutilado , ou seja, acrescente um acento grave e o número de parâmetros genéricos. Por exemplo, use a cadeia de caracteres "Inner'1" para obter a classe Inner<T> aninhada genérica (Inner(Of T) no Visual Basic). Não inclua a sintaxe específica do idioma para parâmetros de tipo.

Os seguintes BindingFlags sinalizadores de filtro podem ser usados para definir quais tipos aninhados incluir na pesquisa:

Esse método retorna apenas os tipos aninhados do tipo atual. Ele não pesquisa as classes base do tipo atual. Para localizar tipos aninhados em classes base, você deve percorrer a hierarquia de herança, chamando GetNestedType em cada nível.

BindingFlags.Instance e BindingFlags.Static são ignorados.

Chamar esse método apenas com o BindingFlags.Public sinalizador ou apenas o BindingFlags.NonPublic sinalizador retornará os tipos aninhados especificados e não exigirá nenhum outro sinalizador.

Consulte System.Reflection.BindingFlags para obter mais informações.

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.

Se um tipo aninhado for genérico, este método retornará sua definição de tipo genérico. Isso será verdadeiro mesmo se o tipo genérico delimitador for um tipo construído fechado.

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. Isso não é necessariamente verdadeiro para tipos aninhados definidos em assemblies dinâmicos ou compilados com o 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.

Confira também

Aplica-se a