Если вы хотите, чтобы компилятор принудительно установил, что ничто не может изменить значение поля после инициализации, то установите его как поле только для чтения и заполните его в конструкторе класса (или просто инициализируйте его, когда вы объявите это, это не так хорошо работает с наследованием, хотя). Если вас не волнует, пока ничего за пределами объекта не может изменить его (это означает, что вы будете доверять своей собственной дисциплине кодирования, чтобы гарантировать, что она не изменится внутри), свойство «только для получения» с полем поддержки или автоматическое свойство с частным сеттером, ваши ставки.
Если вы абсолютно безразлично НЕ ХОТИТЕ изменить значение для определенного класса, НИКОГДА, тогда я бы сделал его доступным только для свойства, возвращая либо строковый литерал, либо константу. Я бы порекомендовал использовать константу над литералом, поскольку вы можете поместить константы в их собственный статический класс, который затем можно использовать отдельно от каждого класса Chip.
ОДНАКО, есть причуды констант, которые вы должны знать. Постоянное значение в .NET хранится в манифесте не только сборки, содержащей декларирующий код, но и в каждой сборке, которая ссылается на декларирующую сборку. Каждый код каждой сборки использует значение из своего собственного манифеста. Таким образом, если постоянное значение EVER изменяется, любая сборка, которая ссылается на декларируемую сборку, должна быть перекомпилирована для обновления манифестов этих сборок новым значением. В противном случае константа будет иметь свое новое значение только при использовании из декларирующей сборки. По этой причине маркировка переменной как константы не должна выполняться легко. Лично я считаю, что если константа не является какой-то ценностью, от которой зависит непрерывное существование и функционирование вселенной, например, пи, е, скорость света в вакууме, постоянная Планка, число Авогадро и т. Д., То это не так. т "постоянная". Все остальное, например, порядковые номера кода связи, МОЖЕТ измениться, даже если это нарушит совместимость со всеми предыдущими версиями вашей программы.