Type.GetNestedType Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém um tipo específico aninhado dentro da corrente Type.
Sobrecargas
| Name | Description |
|---|---|
| GetNestedType(String) |
Pesquisas pelo tipo aninhado público com o nome especificado. |
| GetNestedType(String, BindingFlags) |
Quando sobreposto numa classe derivada, procura o tipo aninhado especificado, usando as restrições de ligação especificadas. |
GetNestedType(String)
Pesquisas pelo tipo aninhado público com o nome especificado.
public:
virtual Type ^ GetNestedType(System::String ^ name);
public:
Type ^ GetNestedType(System::String ^ name);
public Type GetNestedType(string name);
abstract member GetNestedType : string -> Type
override this.GetNestedType : string -> Type
member this.GetNestedType : string -> Type
Public Function GetNestedType (name As String) As Type
Parâmetros
- name
- String
A cadeia que contém o nome do tipo aninhado a obtenir.
Devoluções
Um objeto que representa o tipo público aninhado com o nome especificado, se encontrado; caso contrário, null.
Implementações
Exceções
name é null.
Observações
A pesquisa diferencia name maiúsculas de minúsculas.
Use o nome simples da classe aninhada para name. Não o qualifiques com o nome da classe exterior. Para uma classe genérica aninhada, use o nome distorcido – ou seja, adicione um sotaque grave e o número de argumentos genéricos. Por exemplo, use a cadeia "Inner'1" para obter a classe genérica aninhada Inner<T> (Inner(Of T) em Visual Basic). Não inclua sintaxe específica da linguagem para parâmetros de tipo.
A tabela a seguir mostra quais membros de uma classe base são retornados pelos Get métodos ao refletir sobre um tipo.
| Tipo de Membro | Estático | Não-estático |
|---|---|---|
| Construtor | No | No |
| Campo | No | Yes. Um campo é sempre ocultado com base no nome e assinatura. |
| Event | Não aplicável | A regra comum do sistema de tipos é que a herança é a mesma dos métodos que implementam a propriedade. A reflexão trata propriedades como esconder pelo nome e assinatura. Veja a nota 2 abaixo. |
| Método | No | Yes. Um método (virtual e não virtual) pode ser ocultado por nome ou ocultado por nome e assinatura. |
| Tipo aninhado | No | No |
| Property | Não aplicável | A regra comum do sistema de tipos é que a herança é a mesma dos métodos que implementam a propriedade. A reflexão trata propriedades como esconder pelo nome e assinatura. Veja a nota 2 abaixo. |
Ocultar por nome e assinatura considera todas as partes da assinatura, incluindo modificadores personalizados, tipos de retorno, tipos de parâmetros, sentinelas e convenções de chamada não gerenciadas. Esta é uma comparação binária.
Para reflexão, as propriedades e os eventos são ocultados por nome e assinatura. Se você tiver uma propriedade com um acessador get e um set na classe base, mas a classe derivada tiver apenas um acessor get, a propriedade de classe derivada ocultará a propriedade de classe base e você não poderá acessar o setter na classe base.
Os atributos personalizados não fazem parte do sistema de tipo comum.
Se a corrente Type representa um parâmetro de tipo na definição de tipo genérico ou 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 devolve a sua definição de tipo genérica. Isto é verdade mesmo que o tipo genérico que envolve seja um tipo fechado e construído.
Note
Se o atual Type representa um tipo genérico definido em C#, Visual Basic ou C++, os seus tipos aninhados são todos genéricos mesmo que não tenham parâmetros genéricos próprios. Isto não é necessariamente verdade para tipos aninhados definidos em assemblies dinâmicos ou compilados com o Ilasm.exe (IL Assembler).
Para informações sobre tipos genéricos aninhados e sobre a construção de tipos genéricos aninhados a partir das suas definições de tipos genéricos, veja MakeGenericType.
Ver também
Aplica-se a
GetNestedType(String, BindingFlags)
Quando sobreposto numa classe derivada, procura o tipo aninhado especificado, usando as restrições de ligação especificadas.
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 que contém o nome do tipo aninhado a obtenir.
- bindingAttr
- BindingFlags
Uma combinação bit a bit dos valores de enumeração que especifica como a pesquisa é realizada.
-ou-
Default para regressar null.
Devoluções
Um objeto que representa o tipo aninhado que corresponde aos requisitos especificados, se for encontrado; caso contrário, null.
Implementações
Exceções
name é null.
Observações
Use o nome simples da classe aninhada para name. Não o qualifiques com o nome da classe exterior. Para uma classe genérica aninhada, use o nome deformado – ou seja, adicione um acento grave e o número de parâmetros genéricos. Por exemplo, use a cadeia "Inner'1" para obter a classe genérica aninhada Inner<T> (Inner(Of T) em Visual Basic). Não inclua sintaxe específica da linguagem para parâmetros de tipo.
Os seguintes BindingFlags flags de filtro podem ser usados para definir quais os tipos aninhados a incluir na pesquisa:
Deve especificar um ou BindingFlags.PublicBindingFlags.NonPublic outro para obter uma declaração.
Especifique BindingFlags.Public incluir tipos públicos aninhados na pesquisa.
Especifique BindingFlags.NonPublic incluir tipos aninhados não públicos (ou seja, tipos privados, internos e aninhados protegidos) na pesquisa.
Este método retorna apenas os tipos aninhados do tipo atual. Não pesquisa as classes base do tipo atual. Para encontrar tipos aninhados em classes base, tens de percorrer a hierarquia de herança, chamando GetNestedType em cada nível.
BindingFlags.Instance e BindingFlags.Static são ignorados.
Chamar este método apenas com a BindingFlags.Public flag ou apenas com a BindingFlags.NonPublic flag devolverá os tipos aninhados especificados e não requer outras flags.
Consulte System.Reflection.BindingFlags para obter mais informações.
Se a corrente Type representa um parâmetro de tipo na definição de tipo genérico ou 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 devolve a sua definição de tipo genérica. Isto é verdade mesmo que o tipo genérico que envolve seja um tipo fechado e construído.
Note
Se o atual Type representa um tipo genérico definido em C#, Visual Basic ou C++, os seus tipos aninhados são todos genéricos mesmo que não tenham parâmetros genéricos próprios. Isto não é necessariamente verdade para tipos aninhados definidos em assemblies dinâmicos ou compilados com o Ilasm.exe (IL Assembler).
Para informações sobre tipos genéricos aninhados e sobre a construção de tipos genéricos aninhados a partir das suas definições de tipos genéricos, veja MakeGenericType.