Я только понял, что конструктор свойств С# также может использоваться с модификатором доступа private:
private string Password { get; set; }
Хотя это технически интересно, я не могу представить, когда я буду использовать его, поскольку частное поле включает даже меньше церемонии:
private string _password;
и я не могу себе представить, когда мне когда-либо понадобится внутренне получить, но не установить или , но не получить личное поле:
private string Password { get; }
или
private string Password { set; }
но, возможно, существует прецедент с вложенными/унаследованными классами или, возможно, где get/set может содержать логику вместо того, чтобы просто вернуть значение свойства, хотя я хотел бы сохранить свойства строго простыми и позволить явным методам делать какую-либо логику, например GetEncodedPassword()
.
Кто-нибудь использует какие-либо частные свойства в С# по какой-либо причине или это только одна из тех технически возможных, но редко используемых в-фактических конструкциях кода?
Добавление
Хорошие ответы, чтение через них Я отбраковал эти использования для частных свойств:
- когда личные поля должны быть лениво загружены.
- когда частные поля нуждаются в дополнительной логике или вычисляются значения
- поскольку частные поля могут быть трудно отлаживать
- чтобы "представить вам договор"
- внутренне преобразовать/упростить открытое свойство как часть сериализации
- перенос глобальных переменных, которые будут использоваться внутри вашего класса