Допустимо ли использовать public readonly переменные?

Рейтинг: 1Ответов: 1Опубликовано: 15.08.2023

Задался вопросом, нормальная ли практика использовать public readonly поля или всё же лучше делать их private readonly и затем получать значение через свойство, хотя казалось бы инкапсуляция не ломается из-за public readonly поля. Или есть ещё какие-то варианты?

Ответы

▲ 3Принят

Ограниченно допустимо.

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

Однако, если класс никогда не используется из других сборок (т.е. является internal) - публичные поля в нём использовать допустимо.