Однажды я увидел здесь вопрос о том, можно ли встраивать поля в свойства, чтобы к ним нельзя было получить доступ в остальной части класса, например,
public string Name
{
private string _name;
get { return _name; }
set
{
_name = value;
// <Important stuff that would not be executed
// upon direct field access>
}
}
К сожалению, это невозможно, поэтому я подумалможет быть, это поможет установить правило стиля, согласно которому поля никогда не могут быть доступны вне свойства .Очевидно, что не нужно открывать все поля публично, поэтому для этих полей потребуются частные свойства , например:
private int _progress = 0;
private int progress
{
get { return _progress; }
set { _progress = value; }
}
Если это связано с указанием, что поля должны иметь подчеркивание какпо префиксу можно сразу сказать, что что-то не так, если в других местах класса замечено подчеркивание.
Итак, мой вопрос - или, скорее, вопросы:
Это хорошая идея?Оправдано ли использование верблюжьего чемодана для частных владений?Кто-нибудь может вспомнить сценарий, в котором это может оказаться проблематичным?