Tipos aninhados (guia de programação do C#)
um tipo definido dentro de classe ou de estrutura é chamado um tipo aninhado.Por exemplo:
class Container
{
class Nested
{
Nested() { }
}
}
Independentemente do tipo externo é uma classe ou estrutura, tipos aninhados padrão a private, mas podem ser feitos a público, a interno protegido, a protegido, a interno, ou a private.Em o exemplo anterior, Nested é inacessível para tipos externos, mas pode ser feito público como este:
class Container
{
public class Nested
{
Nested() { }
}
}
O tipo aninhado, ou interno pode acessar a contém, ou o tipo externo.Para acessar o tipo recipiente, passá-lo como um construtor para o tipo aninhado.Por exemplo:
public class Container
{
public class Nested
{
private Container parent;
public Nested()
{
}
public Nested(Container parent)
{
this.parent = parent;
}
}
}
Um tipo aninhado tem acesso a todos os membros que são acessíveis ao seu tipo recipiente.Pode acessar particular e membros protegidos do tipo, incluindo todos os membros herdados protegidos.
Em a declaração anterior, o nome completo da classe Nested é Container.Nested.Este é o nome usado para criar uma nova instância da classe aninhada, como segue:
Container.Nested nest = new Container.Nested();
Consulte também
Referência
Classes e estruturas (guia de programação do C#)
Modificadores de acesso (guia de programação do C#)
Construtores (guia de programação do C#)