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