В большей части кода, который я видел (на SO, thecodeproject.com и я, как правило, делаю это в своем собственном коде), я видел, что публичные свойства создаются для каждого отдельного частного поля, содержащегося в классе, даже если они являются наиболее основным типом get; set;
, например:
private int myInt;
public int MyInt
{
get { return myInt; }
set { myInt = value }
}
Мой вопрос: как это отличается от:
public int MyInt;
и если мы должны использовать свойства вместо публичных полей, почему мы должны использовать их в этом конкретном случае? (Я не говорю о более сложных примерах, где геттеры и сеттеры действительно делают что-то особенное или есть только один get или set (только чтение/запись), а не просто возврат/установка значения частного поля). Похоже, что он не добавляет дополнительной инкапсуляции, а только дает хороший значок в IntelliSense и помещается в специальный раздел в диаграммах классов!