Вы правы, выигрыша в производительности нет. Однако здесь есть ключевые отличия:
Если вы намерены создать класс, в котором вы не пытаетесь изменить _bar, это действительно должно быть поле только для чтения. Здесь я вижу 2 вещи:
- Поля только для чтения могут быть инициализированы только встроенными или во время строительства (безопасность).
- Он защищает от других программистов, которые приходят и думают: «О, это не только для чтения. Я могу изменить его».
Теперь, НЕ должно быть доступно только для чтения, если вы планируете сохранять его нулевым, пока не будет вызван другой метод для его инициализации. Но для этого я бы посмотрел на Lazy<T>
.
По сути, это ваш звонок. Если вы действительно собираетесь ТОЛЬКО ТОЛЬКО 1018 *, модифицирующий этот класс, я бы все же сказал, что следуйте этим правилам. Это лучший способ сделать это. :)