Compartilhar via


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#)

Conceitos

Guia de programação do C#