Приватні властивості можуть бути дуже корисними для інкапсуляції поведінки речей, які є внутрішніми для вашого класу. Тільки тому, що вони приватні, не означає, що ви не повинні скористатися синтаксичним цукром, який надають вам властивості.
Наведений приклад, однак, поганий. Отримати властивості котлоагрегатів та подібні сетери майже завжди є поганою ідеєю. Якщо ви використовуєте C # 3.0 або новішу версію, автоматичні властивості версію - це набагато краща ідея:
private string Whatever { get; set; };
Це коротше, чистіше і набагато читабельніше. Насправді це ледь довше, ніж просто декларування резервної змінної.
Найголовніше, однак, що автоматичні властивості можна перетворити на повні властивості в будь-який час, не змінюючи семантики решти програми! Таким чином, якщо вам потрібно додати перевірку чи обробку помилок, ви можете це зробити легко.
Як завжди, я завжди гадав, що шкода, що ти не можеш мати властивість лише для читання, примушувати лише бути здатним записати значення у конструкторі (я віддаю перевагу незмінним типам ), але це було додано в C # 6.0 як "Автоматизатор власності", який дозволяє робити:
private string Whatever { get; } = ...;
або
private string Whatever { get; };
разом з
Whatever = ...;
в конструкторі.