Инкапсуляция (компьютерное программирование)
В объектно-ориентированном программировании (OOP) инкапсуляция относится к связыванию данных с методами, которые работают с этими данными, или ограничение прямого доступа к некоторым компонентам объекта
По определению он все еще инкапсулирован, находится внутри типа и имеет очень специфический c домен доступности!
Проще говоря, вы можете получить доступ к закрытым полям в типе, который его определил , это также включает вложенные типы / классы (даже если вы имеете дело с ссылка на тип), как таковая (и определенная спецификациями), разрешена.
Чтобы получить конкретную c документацию по этому вопросу, вам действительно нужно go для глубокого погружения через C# Спецификация , которую вы можете найти здесь
Вот важные части
8.5.2 Заявленная доступность
...
- Pri vate, который выбирается включением частного модификатора в объявление члена. Интуитивно понятное значение private: « доступ ограничен типом содержимого
Далее more
8.5.3 Домены доступности
...
Область доступности вложенного члена M, объявленного в типе T в программе P, определяется следующим образом (с учетом того, что сам M может быть типом ):
...
- Если заявленная доступность M является закрытой, доменом доступности M является текст программы T.
...
- В противном случае, если M является частным, доступ разрешается, если он происходит в пределах типа, в котором объявлен M.
- В противном случае тип или член недоступны, и происходит ошибка времени компиляции.
Таким образом, даже если нелогично иметь возможность доступа к частному члену в пределах метод (когда у вас есть доступ только к ссылке ), его все еще инкапсулируется p er-se (хотя вы можете поспорить с определением) и доступный