В C# довольно часто попадается конструкция "свойства по умолчанию" вида
public int x {get; set; }
Зачем нужны свойства вообще я понимаю, это способ обращаться к объекту как к переменной, а на самом деле делать некие сложные действия. ИМХО весьма полезная вещь.
А зачем нужны такие вырожденные свойства? Ведь тут они не делают ничего, кроме как предоставляют доступ к полю. Если объявить просто поле
public int x;
то чем это будет хуже?