Я слышал, что это плохая идея сделать что-то вроде:
public const double Pi = 3;
потому что позже, когда я пойму, что мне нужно изменить его на 3.14
, другие сборки не смогут увидеть изменения, пока они тоже не будут перекомпилированы. Поэтому readonly
будет лучшим выбором.
То же самое относится к строкам? Например, с
public const string Name = "Buh";
это только ссылка, которая постоянна, верно? Или компилятор делает что-то умное здесь?
Является ли строковый литерал "Buh" встроенным в другие сборки? Или только ссылка на "Бух" встроена?