Содержание
- Определение - что означают модификаторы доступа?
- Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.
- Techopedia объясняет модификаторы доступа
Определение - что означают модификаторы доступа?
Модификаторы доступа - это ключевые слова, используемые для определения доступности класса (или типа) и его членов. Эти модификаторы могут использоваться из кода внутри или вне текущего приложения.
Модификаторы доступа в .NET используются для управления доступностью каждого из членов типа из разных возможных областей кода. Это может быть обработано внутри текущей сборки или вне ее. Сборка представляет собой логическую единицу функциональности и состоит из типов и ресурсов, расположенных в одном или нескольких файлах.
Цель использования модификаторов доступа - реализовать инкапсуляцию, которая отделяет интерфейс типа от его реализации. При этом могут быть получены следующие преимущества:
- Предотвращение доступа пользователей к внутренним данным, установленным в недопустимом состоянии.
- Обеспечение изменений во внутренней реализации типов, не затрагивая компоненты, использующие его.
- Снижение сложности системы за счет уменьшения взаимозависимостей между программными компонентами.
Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.
Techopedia объясняет модификаторы доступа
.NET Framework предоставляет возможность иметь пять типов модификаторов доступа:
- Private - код внутри типа может иметь доступ только к членам этого типа, и, следовательно, доступ ограничен текущим типом
- Открытый - код из любого места в текущей сборке или другой сборке, которая ссылается на него, может получить доступ к членам типа и, следовательно, обеспечивает доступ из любого места
- Защищенный - код внутри типа или его производные классы могут обращаться к членам типа, и, следовательно, доступность ограничена текущим типом и производными классами.
- Внутренний - код в текущей сборке, но не из другой сборки, может обращаться к членам типа, поэтому доступ ограничен текущей сборкой
- Защищенный внутренний - код в текущей сборке может получить доступ к членам типа, а также из сборки, которая на него ссылается. Следовательно, доступность происходит от производных классов в текущей сборке и должна осуществляться через экземпляр типа производного класса в сборке, ссылающейся на него.
Есть несколько правил, которые применяются к модификаторам доступа:
- Если для членов типа не указан модификатор доступа, уровень доступа по умолчанию является закрытым и внутренним.
- Для пространств имен запрещены модификаторы доступа, поскольку они являются общедоступными.
- Вложенные классы и члены структуры, объявленные внутри типа, для содержащего класса по умолчанию являются закрытыми.
- Члены структуры не могут быть объявлены защищенными, поскольку они не поддерживают наследование.
- Деструкторы не могут иметь модификаторы доступа.
- Производный тип не может иметь большей доступности, чем его базовый тип.
- Член содержащего типа должен иметь меньшую доступность, чем у содержащего его типа. Это можно проиллюстрировать на примере: открытый метод в содержащем типе не может иметь «A» в качестве параметра, если тип A не доступен для общего доступа.
- Интерфейсы объявляются общедоступными и внутренними и не могут иметь других модификаторов доступа, поскольку интерфейсы в основном используются для доступа производными классами от него.
- Модификаторы доступа используются не только для членов класса, но и для других конструкций кода с тем же намерением.