Свойства, когда реализованы так:
public string FirstName { get; set; }
Автоматически создайте личную переменную-член (компилятор сделает это за вас), так что вам не нужно об этом беспокоиться. Это будет вести себя точно так же, как если бы вы делали:
private string firstName;
public string FirstName {
get { return firstName; }
set { firstName = value; }
}
Нет причин не использовать автоматические свойства ({get; set;}). Предоставляют те же преимущества, что и создание собственной закрытой переменной-члена.
Кроме того, если позже вы решите, что вам нужно выполнить дополнительную обработку (например, если вы решите внедрить INotifyPropertyChanged в своем установщике свойств), вы можете добавить это, не изменяя ваш общедоступный API, но добавляя поле поддержки вручную.