Страницы

Поиск по вопросам

суббота, 7 декабря 2019 г.

C#: в чем разница между readonly и const?

#c_sharp #const #readonly


Привет всем!
В C# есть const и readonly.
В сети нашел только информацию о разнице static readonly и const. А какая разница
между просто readonly и const?
    


Ответы

Ответ 1



Значения полей с модификатором const при компиляции подставляются в тех местах кода, где к ним происходит обращение. Это значит, что в случае, когда такое поле объявлено в классе одной сборки, а используется классами другой сборки, для того чтобы измененное значение было применено в зависимой сборке, потребуется перекомпиляция зависимой сборки. Задать значение можно только в момент объявления. В общем то const-поля это не совсем поля. Поля с модификатором readonly являются полноценными полями, с той разницей, что изменять их значение разрешено только в конструкторе. Соответственно static readonly - в статическом конструкторе (код инициализации полей при объявлении переносится в конструктор компилятором). Таким образом, значения readonly-полей могут, например вычисляться на основе параметров переданных в конструктор, что невозможно для const-полей. В большинстве случаев рекомендуется использовать именно readonly-поля вместо const-полей когда ваш проект включает более одного модуля. А еще у нас тут есть шикарный список литературы рекомендуемой к прочтению для изучения C# и .NET. Книги в списке условно разделены по уровню сложности. Большую часть из них можно найти в сети в электронном виде, было бы желание. Так уж получается, что без чтения книжек программисту не обойтись.

Комментариев нет:

Отправить комментарий