Каждый ответ похож (определение и / или выдержка / ссылка на MSDN), поэтому я попытаюсь ответить на ваши первоначальные 3 вопроса:
Значение:
Любое поле, помеченное как защищенное, означает, что оно видно только себе и всем дочерним элементам (классам, которые наследуют его). Вы заметите, что в коде ASP.NET Web Forms для модели обработчики событий (например, Page_Load) помечены как защищенные. Это связано с тем, что файл разметки ASPX на самом деле наследует от файла с выделенным кодом (для доказательства посмотрите директиву @Page).
Почему мы это используем:
Распространенным применением модификатора защищенной доступности является предоставление детям доступа к его родительским свойствам. У вас может быть базовый класс, для которого происходит множество подклассов. Этот базовый класс может иметь общее свойство. Это хороший случай для защищенного свойства - для облегчения повторного использования и централизованного обслуживания общей логики.
Преимущество:
Похоже на вопрос "почему мы его используем?" Но по сути это дает грубый контроль над свойствами. Вы не можете просто думать о том, «когда вы используете защищенный». Это больше случай выбора, когда использовать какой модификатор доступности (приватный, публичный, внутренний, защищенный). Таким образом, преимущество - это то же самое преимущество любого модификатора доступности - обеспечивает надежную и согласованную объектную модель, максимизирующую повторное использование кода и минимизирующую риски безопасности, связанные с некорректно представленным кодом.
Надеюсь, это поможет.