В С# 7.2 представлен частный защищенный модификатор.
Я всегда защищал доступ к полям со свойствами, предоставляя доступ через методы Get/Set, поскольку я обычно не хочу, чтобы внутреннее состояние моего объекта было изменено чем-либо, кроме моего собственного класса.
Я пытаюсь понять, почему команда языка С# добавила эту функцию. После обширного поиска в google и чтения и просмотра "каких новых" носителей (я смотрел пресс-релиз, подробности и видео от Mads Torgerson), я до сих пор не мудрее.
Для меня это, по-видимому, позволяет разработчику нарушить принцип замены Лискова, но это может быть из-за того, что я не понимаю, почему эта функция существует.
Я понимаю, как это можно использовать, а не почему - пожалуйста, кто-то может предоставить пример использования в реальном мире, а не надуманный в документах MSDN?