Найти в Дзене
Self Study

C#. Готовимся к собеседованию: "Модификаторы доступа".

Введение Довольно часто, на собеседовании, на позицию C# Software Engineer, вас могут попросить рассказать о том, какие модификаторы доступа существует в языке программирования C#, а также какие ограничения они накладывают. В статье даются ответы на следующие вопросы: 1. Какие модификаторы доступа вы знаете? 2. Какие ограничения накладывает определенный модификатор на область видимости? 2.1. Модификатор private Приватный компонент доступен только в рамках своего класса или структуры. 2.2. Модификатор protected Компонент класса доступен из любого места в своем классе или в производных классах. При этом производные классы могут располагаться в других сборках. 2.3. Модификатор internal Компоненты класса или структуры доступен из любого места кода в той же сборке, однако он недоступен для других программ и сборок. 2.4. Модификатор public Публичный, общедоступный компонент класса или структуры. Такой компонент доступен из любого места в коде, а также из других программ и сборок. 2.5.
Оглавление

Введение

Довольно часто, на собеседовании, на позицию C# Software Engineer, вас могут попросить рассказать о том, какие модификаторы доступа существует в языке программирования C#, а также какие ограничения они накладывают.

В статье даются ответы на следующие вопросы:

  1. Какие модификаторы доступа вы знаете ?
  2. Какие ограничения накладывает определенный модификатор на область видимости?
  3. Какой уровень доступа имеют поля класса по умолчанию?
  4. Уровень доступа невложенных классов, интерфейсов и структур по умолчанию?

1. Какие модификаторы доступа вы знаете?

  1. private
  2. protected
  3. internal
  4. public
  5. private protected
  6. protetcted internal
  7. file (добавлен в C# 11)

2. Какие ограничения накладывает определенный модификатор на область видимости?

2.1. Модификатор private

Приватный компонент доступен только в рамках своего класса или структуры.

2.2. Модификатор protected

Компонент класса доступен из любого места в своем классе или в производных классах. При этом производные классы могут располагаться в других сборках.

2.3. Модификатор internal

Компоненты класса или структуры доступен из любого места кода в той же сборке, однако он недоступен для других программ и сборок.

2.4. Модификатор public

Публичный, общедоступный компонент класса или структуры. Такой компонент доступен из любого места в коде, а также из других программ и сборок.

2.5. Модификатор private protected

Компонент класса доступен из любого места в своем классе или в производных классах, которые определены в той же сборке.

2.6. Модификатор protected internal

Cовмещает функционал двух модификаторов protected и internal. Такой компонент класса доступен из любого места в текущей сборке и из производных классов, которые могут располагаться в других сборках.

2.7 Модификатор File

Класс или структура с таким модификатором доступны только из текущего файла. Это позволяет объявить 2 класса с одинаковыми именами в одном и том же namespace, но находящихся в разных файлах.

3. Какой уровень доступа имеют поля класса по умолчанию?

По умолчанию (т.е. когда модификатор доступа не указан) поля класса объявляются с модификатором private. Для всех модификаторов доступа действует правило: если не указан модификатор, то устанавливается максимально строгий, при котором код будет компилироваться.

4. Уровень доступа невложенных классов, интерфейсов и структур по умолчанию?

По умолчанию, уровень доступа у невложенных классов, интерфейсов и структур является internal.