Я не понимаю необходимости иметь частные сеттеры, которые начинались с С# 2.
Наличие метода setter для меня позволяет пользователю установить некоторые переменные в этом классе. При этом мы не будем подвергать переменные напрямую пользователям. Вместо этого мы позволяем им делать это с помощью этого общедоступного метода setter.
Это для меня используется "инкапсуляция". Есть некоторые аргументы, которые утверждают, что частные сеттеры позволят вам применять инкапсуляцию.
Я не использую инкапсуляцию с использованием общедоступных методов настройки? Почему нам нужны частные сеттеры?
В чем разница между неизменяемым классом и классом с частными сеттерами?