Разница в том, что у вас есть контроль над геттерами и сеттерами.
С автоматической реализацией вы не можете сделать что-то вроде:
private int age;
public int Age
{
get { return age; }
set
{
if (age != value)
{
age = value;
OnAgeChanged(EventArgs.Empty);
}
}
}
public event EventHandler AgeChanged;
protected virtual void OnAgeChanged(EventArgs e)
{
var handler = AgeChanged;
if (handler != null)
handler(this, e);
}
Если выэто не нужно, автоматической реализации должно быть достаточно.
Основное преимущество по сравнению с использованием автоматической реализации свойств по сравнению с полем состоит в том, что при использовании автоматической реализации свойств и в дальнейшем вы хотите изменитьРеализация, например, выше, интерфейс вашего класса не меняется.