Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpTyPi 144 of 509 menu
◀ ▶

Модификатор protected internal в C#

Модификатор protected internal в C# означает доступ по правилу «или»: член виден наследникам (в том числе из другой сборки) и любому коду той же сборки, даже без наследования. Это шире, чем private protected, где нужны оба условия сразу.

Наследник читает поле базы, а посторонний тип в том же проекте - через экземпляр Base. Оба вызова выведут 7. Из другой сборки это поле увидел бы только наследник. В примере оба вызова идут внутри одного проекта:

var d = new Derived(); Console.WriteLine(d.Show()); Console.WriteLine(new Reader().Peek()); class Base { protected internal int Id = 7; } class Derived : Base { public int Show() => Id; } class Reader { public int Peek() => new Base().Id; }

Сделайте у двери скрытый код 42 и верните его публичным методом наследника.

Прочитайте код 42 из соседнего класса в том же проекте, не наследуя дверь.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить