Модификаторы доступа в C#

В языке программирования C# все поля, методы и прочие компоненты класса имеют модификаторы доступа. Они дают возможность задавать допустимую область видимости для используемых компонентов класса. Можно сказать, что модификаторы определяют контекст, в котором вы сможете употреблять переменную либо метод.

Существуют следующие модификаторы доступа:

  • private. Для закрытого (приватного) компонента класса либо структуры. Такой компонент будет доступен лишь в рамках своего класса/структуры;
  • private protected. В случае использования этого модификатора компонент класса будет доступен из любого места, но в своем классе либо в производных классах, определенных в той же сборке;
  • protected. В данном случае компонент класса будет доступным из любого места в своем классе либо в производных классах. То есть теперь производные классы смогут располагаться и в других сборках;
  • internal. Здесь компоненты класса/структуры станут доступны из любого места программного кода в той же самой сборке, но недоступны для других сборок и программ;
  • protected internal. Данный модификатор совмещает в себе функционал 2-х модификаторов: internal и protected. В результате компонент класса будет доступен из любого места в текущей сборке. Кроме того, он будет доступен и из производных классов, располагающихся в других сборках;
  • public: это публичный или общедоступный компонент структуры/класса. Он будет доступным из любого места в программном коде, ну и, разумеется, из других сборок и программ.

Также, возможно, вам будет полезна следующая таблица:

По материалам https://metanit.com/sharp/tutorial/.