Back to questions
Junior — Middle
72
Чем отличаются модификаторы доступа protected и internal в языках программирования?
Companies where asked
ТОП КЕЙС
Answer from AI
sobes.tech AI
В C# модификаторы доступа protected и internal имеют разные области видимости:
protected— доступ разрешён внутри класса и во всех его производных классах, даже если они находятся в других сборках.internal— доступ разрешён только внутри текущей сборки (assembly), то есть всем классам в одном проекте, но не из других сборок.
Также существует комбинированный модификатор protected internal, который позволяет доступ либо из производных классов, либо из текущей сборки.
Пример:
class BaseClass {
protected void ProtectedMethod() { }
internal void InternalMethod() { }
}
class DerivedClass : BaseClass {
void Test() {
ProtectedMethod(); // доступно
InternalMethod(); // доступно, если в той же сборке
}
}
class OtherClass {
void Test() {
var b = new BaseClass();
// b.ProtectedMethod(); // ошибка, не наследник
// b.InternalMethod(); // доступно, если в той же сборке
}
}