Страницы

Поиск по вопросам

четверг, 29 ноября 2018 г.

Разница между internal и public в c#

Может вопрос и глупый но хочу разобраться досконально. Читаю msdn, цитата :
Модификатор internal делает класс, интерфейс или член видимым только в текущем пакете. Код за пределами текущего пакета не может получить доступ к членам с модификатором internal.
Сразу вопрос что понимается под словом пакет?
Далее:
В глобальной области действия модификатор internal эквивалентен модификатору public.
Тогда зачем нужны internal если public ему эквивалентен ? Поясните разницу.


Ответ

Пакет в данном случае обозначает сборку (Assembly). Грубо говоря - это ваш проект. Т.е. класс, помеченный этим модификатором будет виден из кода сборки (из файлов, относящихся к одному проекту и тому же пространству имён - .csproj). Кроме того, согласно комментарию @andreycha такой класс будет виден для всех дружественных сборок (friendly assemblies).

Комментариев нет:

Отправить комментарий