По моему опыту работы с Resharper, вы получите это предложение, если вы устанавливаете значение переменной в объявлении, но значение переменной никогда не изменяется во всем методе.В этом случае его можно преобразовать в локальную константу.Вы также получите предупреждение о переменной экземпляра, которую вы инициализируете на месте, но никогда не меняете значение в теле класса.
И автор этой книги в основном приводит аргумент, что с помощью readonly
вместо const вы можете избежать перестроения зависимых сборок, если измените значение readonly
.Напротив, для изменения const
вам придется перекомпилировать зависимые сборки с новой версией сборки с помощью const
.
Однако это допустимый аргумент, если значениене будет меняться на протяжении всей жизни приложения, я все же думаю, что лучше использовать const
.Мне нравится использовать readonly
для значений, которые я загружаю из конфигурации, например, которые не изменятся после инициализации в конструкторе.
Я думаю, что гораздо лучше иметь кодясность, которую const
обеспечивает за счет возможного немного большего обслуживания компиляции.