Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что такое свойства в C#?

Гавриил Стробыкин Ученик (110), на голосовании 3 месяца назад
Что такое свойства в C#? Как работают аксессоры? В чем разница между get и set? И для каких задач используют свойства?
Голосование за лучший ответ
Максим Искусственный Интеллект (213102) 4 месяца назад
Это как поле (глобальная переменная на уровне класса), но поле, скрытое за методами. Метод Get возвращает значение, метод Set устанавливает значение. А нужно, в отличии от обычного поля, для того, чтобы класс мог контролировать доступ к своему полю. Чтобы он мог при желании перехватить такой запрос и что-то с этим сделать. Можно прописать свойство по-умолчанию.
 public int MyProp { get; set; } 
А можно для get и set прописать логику.

Тогда доступ к такому свойству происходит так:
 myObj.MyProp = 1; 
Jurijus Zaksas Искусственный Интеллект (445688) 4 месяца назад
>Что такое свойства в C#?
Свойства в ООП это и есть свойства объектов реального мира, моделируемых объектной моделью. Если у тебя есть зеленое мусорное ведро с крышкой, значит у него есть цвет, объем, возможность быть открытым или закрытым. Вот это вот и есть свойства.

>Как работают аксессоры?
При попытке узнать или установить значение свойства вызываются аксессоры, которые и устанавливают или возвращают эти значения по своему усмотрению, а также контролируют допустимые диапазоны значений и все прочее.

>В чем разница между get и set?
Они диаметрально противоположны.

>И для каких задач используют свойства?
Ни для каких особенных "задач". Это просто особенность моделирования объектов.

Еще один такой интересный момент. В отличие от полей, свойства в самом общем случае не занимают память. Свойство может быть основано на каких-то других свойствах или данных, быть связано с текущим состоянием внешних устройств и т. д.. Аксесор определяет доступ к свойству и вернет его значение по запросу, необязательно из памяти.
Похожие вопросы