Вложенный тип

Автор: Lewis Jackson
Дата создания: 8 Май 2021
Дата обновления: 15 Май 2024
Anonim
Java для начинающих. Урок 43: Вложенные классы.
Видео: Java для начинающих. Урок 43: Вложенные классы.

Содержание

Определение - что означает вложенный тип?

Вложенный тип в C # - это тип, объявленный в существующем классе или структуре. В отличие от не вложенного типа, который объявляется непосредственно в модуле компиляции или в пространстве имен, вложенный тип определяется в области действия содержащего (или внешнего) типа.

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

Как правило, вложенный тип используется только в ситуациях, когда он логически относится к содержащему типу. Он реализуется, когда содержащий тип полностью зависит от вложенного типа, что помогает инкапсулировать детали реализации содержащего типа. Он часто используется в сценариях, где содержащий тип, который имеет вложенный тип для своей реализации, используется напрямую без каких-либо требований для создания экземпляра своего вложенного типа.


Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.

Техопедия объясняет вложенный тип

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

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

Вложенный тип имеет следующие ключевые свойства:

  • Он может иметь различные формы доступности, включая частную, публичную, защищенную, защищенную внутреннюю и внутреннюю. По умолчанию он имеет частную доступность.
  • Он может получить доступ к закрытым и защищенным членам содержащего типа, включая любые унаследованные частные и защищенные члены. Чтобы получить доступ к этим членам, экземпляр содержащего типа должен быть передан во вложенный тип через его конструктор.
  • Это позволяет использовать несколько уровней вложенности, что позволяет определять блок кода одного вложенного класса в другом.
  • Он может наследоваться от содержащего типа, а также наследоваться.
  • Закрытые члены вложенного типа невидимы для содержащего типа.


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