Вложенные типы (руководство по программированию на C#)
Обновлен: Ноябрь 2007
Тип, определенный внутри класса или структуры, называется вложенным типом. Пример.
class Container
{
class Nested
{
Nested() { }
}
}
Независимо от того, являются ли внешние типы классом или структурой, вложенные типы по умолчанию являются private, но могут быть также public, protected internal, protected, internal или 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#)