Member 13138434 Ответов: 1

Относительно модификатора защищенного внутреннего доступа


1) Как мы можем использовать" защищенную " переменную модификатора доступа конкретного пространства имен
класса в другом пространстве имен внутри класса ?
2) можем ли мы сделать то же самое с "внутренним" модификатором доступа ?
3) Почему мы используем модификатор "защищенный внутренний" доступ вместо "защищенного" доступа
модификатор, не понял, что в
правильный путь ?

Что я уже пробовал:

Я попробовал несколько способов найти ответ на этот вопрос, но не получил ни одного .

1 Ответов

Рейтинг:
7

OriginalGriff

1) protected это означает, что код может быть доступен из любого класса, производного от исходного класса. Так что вы можете думать об этом как "public для класса и производных классов, но private для всех остальных.
2) internal расширяться protected для любого класса в любом пространстве имен в одной и той же сборке: на практике это означает "в любом месте этого EXE-или DLL-файла", поскольку сборка может содержать несколько пространств имен.
3) protected internal расширяться internal к классам, производным от исходного класса, даже если они находятся вне текущего пространства имен и сборки.

1) Вы не можете этого сделать, если не производите класс от исходного класса, который объявляет защищенный член. Даже тогда вы можете получить доступ к члену только из исходного или производного класса, он не становится общедоступным в производном классе. Пространство имен здесь не имеет значения,важно только происхождение.
2) internal означает, что член доступен только классу в любом пространстве имен в одной сборке: на практике это означает "в любом месте этого EXE-или DLL-файла", поскольку сборка может содержать несколько пространств имен.
3) protected internal сочетает в себе protected и internal к классам, которые являются производными от исходного класса или находятся внутри текущей сборки.

Видеть здесь: Модификаторы Доступа (Руководство По Программированию На C# )[^]