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

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

25.04.2009, 19:44. Показов 11395. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru