Нет никаких очевидных преимуществ с точки зрения производительности readonly
, по крайней мере, ни один из тех, о которых я когда-либо упоминал Это просто для того, чтобы делать то, что вы предлагаете, для предотвращения изменения после его инициализации.
Так что это выгодно тем, что помогает вам писать более надежный и читаемый код. Реальная выгода от подобных вещей приходит, когда вы работаете в команде или для технического обслуживания. Объявление чего-либо как readonly
родственное заключению контракта на использование этой переменной в коде. Думайте об этом как о добавлении документации таким же образом, как и другие ключевые слова, такие как internal
или private
, вы говорите: «эта переменная не должна изменяться после инициализации», и, более того, вы применяете ее.
Таким образом, если вы создаете класс и помечаете некоторые переменные-члены в соответствии readonly
с дизайном, то вы предотвращаете ошибку себя или другого члена команды позже, когда они расширяют или модифицируют ваш класс. На мой взгляд, это преимущество, которое стоит иметь (за счет небольшой дополнительной языковой сложности, как упоминалось в комментариях).