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