Преимущества времени разработки
Свойства упрощают визуальное проектирование, у вас есть самый известный браузер свойств Visual Studio, чтобы вы могли изменять свойства объекта.
Свойства также предоставляют дополнительные метаданные (g3) Отдельные данные и действия
Они действительно представляют разницу между «данными» объекта и «Действиями», (Методы) объекта.
Когда мы смотрим на класс, если у нас есть 50 методов для просмотра, не все всегда будут использовать правильное назначение функций, что усложнит понимание позже. Я всегда говорю программистам, что всякий раз, когда вы программируете, напишите код таким образом, чтобы через 5 лет, если кто-то еще смотрит на код, он должен понимать код.
Использование имен методов доступа к данным и некоторые действия создают путаницу в долгосрочной перспективе ... например, в случае Stack, Push / Pop - это действия, но «Size» или «Count» - это данные.
Создание свойства «Count» просто отличает его назначение как данные вместо действия.
Связывание с данными
Как уже упоминалось другими, свойства предлагают расширенный уровень привязки данных, например, двухстороннюю привязку и т. д.
Ограничения доступа
Вы можете иметь свойства readonly и дополнительные аксессоры, как упоминалось другими.
Reflection
Его мало-просто работать со свойствами в случае написания общего кода на основе отражения.
Различные реализации хранилища
Публичные переменные хранят данные только как члены, где еще свойства предоставляют различные способы хранения данных в разных формах, таких как intern они могут быть сохранены как hashtable (как это делается в объектах зависимостей в WPF). Их можно кэшировать. Они могут быть переданы другим дочерним объектам или субъектам. Однако реализация скрыта для вызывающих абонентов.
Проверка
Свойство настройки может потребовать определенной проверки, а код проверки в части «Установить» кода может легко помочь вам проверить правильность ввода и сообщить об ошибках .
Уведомления
Устанавливать часть метода можно поднять события уведомления, такие как INotifyPropertyChanged.PropertyChanged, которые другие объекты могут прослушивать и обновлять отображаемое значение. Это важная часть расширенной привязки данных.
Короче говоря, это новый «Стандартный» хранилища данных, который имеет расширенные возможности, а просто просто сохраняет данные в членах класса. Обычно избегая свойств, вы можете выполнять все функции, но поскольку реализация может отличаться от человека к человеку, это стандарт, который помогает каждому определять / получать доступ / проверять / уведомлять хранилище данных в одной форме, называемой «Свойства»