Поделиться через


Вложенные типы (Руководство по программированию на C#)

Тип, определенный внутри класса или структуры, называется вложенным типом.Примеры.

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

Внешний независимо от того, является ли тип классом или структурой, вложенные типы по умолчанию private, но могут быть сделаны Открытыйзащищенные, внутренние, protected" внутренниеили private.В предыдущем примере тип Nested недоступен для внешних типов, но он может являться открытым:

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

Вложенный или внутренний тип может получить доступ к содержащему или внешнему типу.Чтобы получить доступ к содержащему типу, передайте его в качестве конструктора во вложенный тип.Примеры.

public class Container
{
    public class Nested
    {
        private Container parent;

        public Nested()
        {
        }
        public Nested(Container parent)
        {
            this.parent = parent;
        }
    }
}

Вложенные типы могут получать доступ к закрытым и защищенным членам содержащего типа, включая любые наследуемые закрытые или защищенные члены.

В предыдущем объявлении полным именем класса Nested является Container.Nested.Это имя используется для создания нового экземпляра вложенного класса, как показано ниже:

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

См. также

Ссылки

Классы и структуры (Руководство по программированию в C#)

Модификаторы доступа (Руководство по программированию в C#)

Конструкторы (Руководство по программированию на C#)

Основные понятия

Руководство по программированию на C#