Недавно встретил неизвестный мне ранее модификатор доступа "protected internal" и решил поглубже разобраться в этой теме. Какие модификаторы доступа присутствуют в C# и в чём их разница?
Вообще суть модификаторов доступа - определение допустимой области видимости и взаимодействия для членов класса.
В C# существуют такие модификаторы доступа:
- public (доступен из любого другого места в коде, а так же из других сборок и тд)
- private (доступен только в классе, где был объявлён, противоположность public)
- protected (доступен из текущего класса или из производных классов)
- internal (доступен для любого места в коде, но только в текущей сборке (в отличие от public))
- protected internal (доступен из текущей сборки и из производных классов)
- private protected (доступен в текущем классе и в производных классах, но только текущей сборки)
По-умолчанию поля являются private, классы - internal.
Модификаторы доступа и многие другие темы рассмотрены на курсе C# Essential.
Ссылка на курс: С# Essential
Ссылка на урок: Урок 3