Страницы

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

среда, 25 декабря 2019 г.

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

#c_sharp #терминология


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


  Модификатор internal делает класс, интерфейс или член видимым только в текущем
пакете. Код за пределами текущего пакета не может получить доступ к членам с модификатором
internal.


Сразу вопрос что понимается под словом пакет?

Далее:


  В глобальной области действия модификатор internal эквивалентен модификатору public.


Тогда зачем нужны internal если public ему эквивалентен ? Поясните разницу.
    


Ответы

Ответ 1



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

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

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