Compartilhar via


Tipos aninhados (guia de programação de C#)

Um tipo definido dentro de um classe ou struct é chamado de um tipo aninhado. Por exemplo:

class Container
{
    class Nested
    {
        Nested() { }
    }
}

Independentemente, por exemplo, se os tipos externos é uma classe ou estrutura, tipos aninhados padrão particular, mas pode ser efetuada públicaprotegido, interno, protegido, interno, ou particular. No exemplo anterior, Nested é inacessível para os tipos externos, mas pode se tornar pública, como este:

class Container
{
    public class Nested
    {
        Nested() { }
    }
}

O tipo aninhado ou interno pode acessar o tipo de recipiente ou externo. Para acessar o tipo de 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;
        }
    }
}

Tipos aninhados podem acessar membros de particulares e protegidos do tipo recipiente, incluindo quaisquer membros herdados de particulares ou protegidos.

Na declaração anterior, o nome completo da classe Nested é Container.Nested. Este é o nome usado para criar uma nova instância da classe aninhada, da seguinte maneira:

Container.Nested nest = new Container.Nested();

Consulte também

Referência

Classes e estruturas (guia de programação de C#)

Access Modifiers (C# Programming Guide)

Constructors (C# Programming Guide)

Conceitos

C# Programming Guide