Переменные только для чтения VS свойства только для чтения

public static string BoldStartTag { get { return "<B>"; } }

VS

   public static readonly string BoldStartTag  = "<B>"; 

или

public const string BoldStartTag  = "<B>"; 

какой предпочтен? Я думал бы переменная только для чтения/постоянная, поскольку я не делаю никакого вычисления в свойстве (просто возврат). Кроме того, компилятор C# извлечет метод для свойства только для чтения, тогда как переменная только для чтения просто будет переменной в IL.

Ваши мысли?

8
задан Ashish Gupta 29 March 2012 в 01:28
поделиться

3 ответа

Джефф Этвуд некоторое время назад написал статью о Свойствах против публичных переменных.

Я думаю, что наиболее интересными для рассмотрения здесь являются те моменты, которые он упоминает в своем обновлении:

  • Отражение работает по-разному с переменными и свойствами, поэтому если вы полагаетесь на отражение, проще использовать все свойства.
  • Вы не можете привязать базу данных к переменной.
  • Замена переменной на свойство - это разрушающее изменение.
9
ответ дан 5 December 2019 в 12:07
поделиться

Почему бы не использовать константу? Я бы подумал, что наличие в качестве начального тега жирным шрифтом было бы справедливо высечено в камне.

1
ответ дан 5 December 2019 в 12:07
поделиться

Предпочтительным методом для общедоступных значений всегда является свойство по причинам инкапсуляции.

В вашем конкретном примере я бы использовал const - это не похоже на то, что BoldStartTag скоро изменится.

4
ответ дан 5 December 2019 в 12:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: