Задать вопрос
@Naf2000

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

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

И то и другое можно инициализировать при определении или в конструкторе.
В случае свойства это вызов метода, но возможно компилятор оптимизирует.
В случае свойства, если MyType есть структура, то её члены невозможно изменить - свойство даёт копию.
Что ещё?
  • Вопрос задан
  • 183 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 2
yarosroman
@yarosroman Куратор тега C#
C# the best
В геттер можно запихать любую логику, например, вычисляемое поле, в синглтоне обращение к свойству, при необходимости создает экземпляр синглтона и т. д.
Ответ написан
Комментировать
1. Свойство вполне можно запихнуть в интерфейс, в отличие от поля.
2. По всем гайдлайнам публичных полей быть не должно.
В случае свойства это вызов метода, но возможно компилятор оптимизирует.

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

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

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