|
0 / 0 / 0
Регистрация: 12.01.2018
Сообщений: 4
|
|
Аксессоры get, set20.06.2018, 08:25. Показов 4356. Ответов 4
Метки нет (Все метки)
Здравствуйте. Вопрос, наверное, глупый, но все же. Я никак не могу понять для чего нужно использовать аксессоры get; set; пересмотрел много видео, перечитал кучу форумов, но объяснения, которое было бы понятно мне не нашел. Как я понимаю, с помощью них можно ограничивать допустимый ввод данных и получать доступ из других классов. Это единственные их функции или есть и другие? Почему вместо аксессоров нельзя использовать для переменных public?
0
|
|
| 20.06.2018, 08:25 | |
|
Ответы с готовыми решениями:
4
Аксессоры к полям закрытой структуры |
|
75 / 75 / 96
Регистрация: 29.09.2012
Сообщений: 232
|
|
| 20.06.2018, 08:48 | |
|
Потому что нужно придерживаться парадигм ООП, в частности здесь используется Инкапсуляция для сокрытия данных.
get позволяет организовать безопасное обращению к полю private для чтения, а set позволяет безопасно устанавливать значения этого поля. Так же в свойствах вы можете организовать различные проверки данных.
0
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|||||||
| 20.06.2018, 09:50 | |||||||
Добавлено через 8 минут Кстати, мало где пишут, но компилятор может и оптимизировать акцесоры, делая inline-подстановки для простых вариантов акцессоров. Так что далеко не всегда акцессор является настоящим методом. Проверять сборку можно в отдельной программе Net Reflector.
0
|
|||||||
|
|
||||
| 20.06.2018, 17:10 | ||||
|
2 В get можно делать какой-то расчет для вычисления значения свойства 3. В set можно добавить доп. вычислительную логику, важную для класса/объекта в целом 4 Можно делать логгирование чтения и записи свойств. Это очень важно. Есть даже такой замечательный паттерн MVVM, который благодаря отслеживанию изменений свойств, позволяет менять содержимое view. И он сейчас популярен 5 В конце концов, это закладка на будущее. Если у вас нет никакой доп логики в set/get, это не значит, что она не может появиться в процессе роста проекта. И в принципе в поведении ничего может и не измениться: что к свойству, что к полю мы обращаемся с помощью .Имя. Но это в случае, если вы не используете Reflection и другие подобные библиотеки. Если используете их активно, то придется переписывать многое зановоПожалуй, у меня все. Может, еще кто-то что добавит. Выводы: исходя из всего вышесказанного использовать get;set; является хорошим стилем, если вы хотите расти, просто возьмите это в привычкуДобавлено через 47 минут
0
|
||||
|
29 / 31 / 27
Регистрация: 15.11.2017
Сообщений: 121
|
|||||||||||||||||
| 20.06.2018, 19:32 | |||||||||||||||||
1
|
|||||||||||||||||
| 20.06.2018, 19:32 | |
|
Помогаю со студенческими работами здесь
5
Аксессоры для всех переменных сразу Могут ли аксессоры свойства иметь различные модификаторы доступа
Аксессоры что можно, а что нельзя? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|