Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/58: Рейтинг темы: голосов - 58, средняя оценка - 5.00
8 / 8 / 0
Регистрация: 27.02.2009
Сообщений: 125

Для чего нужны свойства, если есть методы

25.04.2009, 19:44. Показов 11430. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот, сопсна, тоже изучаю сей язык. Книжечку полистываю. Вопрос - мне не совсем понятно, какой цели служат свойства в C#. Насколько я понимаю, весь их функционал можно заменить применением конструкторов и методов. Или я что-то упускаю из вида?

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.04.2009, 19:44
Ответы с готовыми решениями:

Для чего нужны частичные методы?
С частичными классами всё понятно,но зачем нужны частичные методы?

Зачем использовать поля, если есть свойства?
Приветствую. Объясните новичку: для чего нужно использовать поля, если есть такая штука, как свойства? Попробую добавить конкретики. ...

Свойства. Для чего и где их использовать?
Уже во второй книге наткнулся на раздел "свойства" и не могу понять для чего и где их использовать? Вот допустим класс с двумя полями...

8
Любитель давать советы
 Аватар для Alexiski
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
27.04.2009, 02:02
Можно заменить. Но зачем? Со свойством получается проще и нагляднее.
1
 Аватар для _NuClear
27 / 27 / 2
Регистрация: 09.12.2008
Сообщений: 138
27.04.2009, 02:03
о свойствах написано много и ничего сложного в них нет, нет их функционал заменить конструкторами не возможно, но методами да, свойства в конечном итоге это и есть методы, но с ними на много проще работать...
советую прочитать самоучитель по шарпу ссылку я дал в топике с литературой, там все описано и достаточно понятно .
2
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
02.05.2009, 07:39
С точки зрения объекта свойство описывает некоторое состояние объекта, а метод - это способ взаимодействия объекта с чем-либо.
Грубовато и нелепо, но как-то так...
1
26 / 26 / 2
Регистрация: 10.02.2009
Сообщений: 114
02.05.2009, 08:16
Вы про get,set ?
Одна из основ ООП - инкапсуляция внутри класса. К данном случай при применении акцессоров get,set выполняется инкапсуляция полей внутри класса и создания интерфейса для доступа к ним...
1
Любитель давать советы
 Аватар для Alexiski
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
02.05.2009, 14:55
Раз уж тут пошло дальнейшее обсуждение, уточню.

Тут уже совершенно правильно писали:
Цитата Сообщение от Green Посмотреть сообщение
С точки зрения объекта свойство описывает некоторое состояние объекта
Например, высота окна. Но пользователю совершенно не нужно знать, что изменение размера окна приводит к целому ряду дополнительных действий: перерасчету расположения элементов внутри, добавленю/скрытию полос прокрутки, наконец, просто к перерисовке клиентской области. Именно такие "скрытые" действия приводят к необходимости создания метода set, обрамляющего изменение свойства.

Да, любое свойство в принципе можно заменить парой методов get и set. Но по логике программы свойство продолжает описывать состояние, а не действие. Поэтому более естественным оказывается применять свойство. Внешний программист даже не обязан задумываться, работает он со свойством или с полем класса.
2
8 / 8 / 0
Регистрация: 27.02.2009
Сообщений: 125
09.05.2009, 22:06  [ТС]
Спасибо всем, разобрался. Свойство - своего рода тип метода, обращение к которому по синтаксису схоже с прямым обращением к паблик-полю данных.

Цитата Сообщение от _NuClear Посмотреть сообщение
нет их функционал заменить конструкторами не возможно, но методами да
Я имел в виду - конструкторами для инициализации, и методами - для возврата инициализированного значения из экземпляра. Ну или "чистыми" методами, как для инициализации, так и для возврата значений. Знак "И" в моей фразе "заменить применением конструкторов и методов" нужно понимать именно как AND, а не OR или XOR.

Спасибо.

Добавлено через 4 минуты 13 секунд
Цитата Сообщение от Alexiski Посмотреть сообщение
Да, любое свойство в принципе можно заменить парой методов get и set. Но по логике программы свойство продолжает описывать состояние, а не действие. Поэтому более естественным оказывается применять свойство. Внешний программист даже не обязан задумываться, работает он со свойством или с полем класса.
Хотел поблагодарить (кликнуть на "спасибо") за это сообщение, но ошибочно поблагодарил за Ваше предыдущее в этой ветке. Спасибо.

Добавлено через 13 минут 17 секунд
Кстати, продолжая хорошую мысль, на которую навело меня сообщение уважаемого _NuClear...

Известно, что конструктор не работает с ключевым словом out... А может ли он получать ссылки в качестве параметров?... Этого я не проверял. Сегодня-завтра надо будет проверить (мысли вслух )...
0
 Аватар для Angieskiss
0 / 0 / 0
Регистрация: 23.08.2009
Сообщений: 4
23.08.2009, 00:36
свойства чаще всего применяются к приватным полям, потому что по-другому невозможно установить или считать значение этого поля вне класса
0
 Аватар для Mecid
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
23.08.2009, 01:56
Цитата Сообщение от Someone from Russia Посмотреть сообщение
Вопрос - мне не совсем понятно, какой цели служат свойства в C#. Насколько я понимаю, весь их функционал можно заменить применением конструкторов и методов.
вы случайно на JAVA не писали?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.08.2009, 01:56
Помогаю со студенческими работами здесь

Для чего нужны интерфейсы
Люди уже около полу года проглю на C# и до сих пор не могу понять зачем нужны интерфейсы , где их вообще применять, вернее зачем знаю , но...

Для чего нужны суффиксы?
Здравствуйте. Начал изучать программирование практически с нуля, если не считать Бейсик из далеких 80-90х годов. Не могу понять зачем...

Для чего нужны делегаты?
Никак не могу понять, зачем нужны делегаты. Есть на форуме люди, желающие помочь новичку самоучке разобраться в этом простейшем вопросе? ...

Для чего нужны делегаты
Добрый день. Может кто-нибудь объяснить для чего нужны делегаты и привести пример. Уже кучу книг пересмотрел, но так всё равно и не понял,...

Для чего нужны делегаты
Форумчане не подскажете где и для чего нужны делегаты? Перечитал много книг ни как не могу догнат? Понял что они хранят вселены ссылку на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru