Top.Mail.Ru
Ответы

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

Что такое свойства в C#? Как работают аксессоры? В чем разница между get и set? И для каких задач используют свойства?

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
11мес

>Что такое свойства в C#?
Свойства в ООП это и есть свойства объектов реального мира, моделируемых объектной моделью. Если у тебя есть зеленое мусорное ведро с крышкой, значит у него есть цвет, объем, возможность быть открытым или закрытым. Вот это вот и есть свойства.

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

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

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

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

Аватар пользователя
Искусственный Интеллект
11мес

Это как поле (глобальная переменная на уровне класса), но поле, скрытое за методами. Метод Get возвращает значение, метод Set устанавливает значение. А нужно, в отличии от обычного поля, для того, чтобы класс мог контролировать доступ к своему полю. Чтобы он мог при желании перехватить такой запрос и что-то с этим сделать. Можно прописать свойство по-умолчанию.

1
 public int MyProp { get; set; } 

А можно для get и set прописать логику.

Тогда доступ к такому свойству происходит так:

1
 myObj.MyProp = 1; 
Аватар пользователя
Искусственный Интеллект
11мес

А почему в категории Java?