public static string BoldStartTag { get { return "<B>"; } }
VS
public static readonly string BoldStartTag = "<B>";
или
public const string BoldStartTag = "<B>";
какой предпочтен? Я думал бы переменная только для чтения/постоянная, поскольку я не делаю никакого вычисления в свойстве (просто возврат). Кроме того, компилятор C# извлечет метод для свойства только для чтения, тогда как переменная только для чтения просто будет переменной в IL.
Ваши мысли?
Джефф Этвуд некоторое время назад написал статью о Свойствах против публичных переменных.
Я думаю, что наиболее интересными для рассмотрения здесь являются те моменты, которые он упоминает в своем обновлении:
- Отражение работает по-разному с переменными и свойствами, поэтому если вы полагаетесь на отражение, проще использовать все свойства.
- Вы не можете привязать базу данных к переменной.
- Замена переменной на свойство - это разрушающее изменение.
Почему бы не использовать константу? Я бы подумал, что наличие
в качестве начального тега жирным шрифтом было бы справедливо высечено в камне.
Предпочтительным методом для общедоступных значений всегда является свойство по причинам инкапсуляции.
В вашем конкретном примере я бы использовал const
- это не похоже на то, что BoldStartTag
скоро изменится.