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