Потенциально, возможно, что компилятор (а не CLR) может сделать что-то умное в создании IL.Я не знаю, так ли это, и, честно говоря, все равно: если нет, возможно, так и будет в будущем (более поздние версии).Если это произойдет, может быть, этого не произойдет в будущем (найден крайний случай, показывающий, что оптимизация опрометчива.
Я рад думать, что «хорошо, если это только для чтения, то, возможно,компилятор (или, действительно, CLR) сделает с ним что-то умное, так что это будет бесплатное улучшение ». Это будет бесплатное улучшение, потому что я никогда не собираюсь делать что-то для чтения только для чтенияПреимущество такой оптимизации, даже если я узнаю, что она определенно делает это и что такая экономия велика. Я буду когда-либо делать что-то только для чтения, если это будет иметь смысл для чтения. Я делаю это много, потому что мой стиль поддерживает интенсивное использование неизменяемых объектовно я сделаю это только потому, что объект является логически неизменным, вместо того чтобы сделать его неизменным для достижения некоторой оптимизации, а затем придется обойти неизменность.
Конечно, есть и определенные способы, которыми вы может быть умным с неизменными объектами (в частности, при разработке эффектов различных многопоточных сценариевбудет иметь на вашем коде).