@Naf2000

Что и когда использовать: readonly-поле и get-свойство с методом по-умолчанию?

Чем отличается концептуально и что лучше использовать в каком случае:
public readonly MyType MyData;
public MyType MyData { get; }

И то и другое можно инициализировать при определении или в конструкторе.
В случае свойства это вызов метода, но возможно компилятор оптимизирует.
В случае свойства, если MyType есть структура, то её члены невозможно изменить - свойство даёт копию.
Что ещё?
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 2
yarosroman
@yarosroman Куратор тега C#
C# the best
В геттер можно запихать любую логику, например, вычисляемое поле, в синглтоне обращение к свойству, при необходимости создает экземпляр синглтона и т. д.
Ответ написан
Комментировать
vabka
@vabka Куратор тега C#
Токсичный шарпист
1. Свойство вполне можно запихнуть в интерфейс, в отличие от поля.
2. По всем гайдлайнам публичных полей быть не должно.
В случае свойства это вызов метода, но возможно компилятор оптимизирует.

Не возможно, а точно оптимизирует при компиляции в Release профиле. Эта оптимизация существует достаточно давно как раз из-за п2.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы