|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.06.2017, 15:29 | #11 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
property это просто более удобный синтаксис для GetXXX/SetXXX функций.
Я ж показал какие: можно сделать его неизменяемым извне. Ну или вообще без поля что-то вычислять. Или делать что-то еще при присваивании.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.06.2017, 15:32 | #12 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
К паблик есть доступ из кода. А свойство можно сделать только для чтения, защитив его от ошибочного изменения из вне
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
30.06.2017, 15:37 | #13 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Инкапсуляция. Вы когда пишете property можете сделать проверку по входу. Ваш объект всегда будет иметь гарантированно-рабочее состояние.
Плюс параллельность и асинхронность. Можно организовать синхронизацию по коду. Но в целом это не такие большие преимущества. Обязательно для COM. Для плагинов это то что доктор прописал.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
30.06.2017, 15:42 | #14 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Какие - это я понял. Я не понял, чем
Код:
Код:
Условно говоря, есть список отрезков и список трасс. Каждая трасса состоит из нескольких отрезков. Когда я создаю отрезок, я добавляю его по очереди сначала в объект трассы а потом в список отрезков (надеюсь, добавляется один и тот же и при изменении в списке отрезков изменится и в трассе, не проверял пока). Но списки разные, а ID у отрезка должно быть одно, назначаться списком отрезков. А у меня получается, что оно сначала назначается одним списком, а потом другим меняется (если там не разные копии создаются). |
30.06.2017, 15:47 | #15 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
|
30.06.2017, 15:47 | #16 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так вы ж ID хотели постоянным сделать.
Ну и для наследников можно protected вместо private если надо.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.06.2017, 15:57 | #17 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Alex11223 Ну да, постоянным, пока есть этот отрезок.
Хм. А если сделать его неменяемым извне, то тогда и проблемы с изменением при двойном добавлении не будет? Но тогда и присваивать его не в Add надо? |
30.06.2017, 16:02 | #18 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
"двойном добавлении" это как?
Присваивать в конструкторе.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.06.2017, 16:25 | #19 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Ну я ж написал: у меня есть список отрезков и список трасс. Каждая трасса содержит список отрезков, в который входят некоторые из тех, которые в списке отрезков. Что-то типа такого:
[отрезок 1, отрезок 2, отрезок 3, отрезок 4, отрезок 5, отрезок 6, отрезок 7, отрезок 8, отрезок 9] Трасса 1: [отрезок 2, отрезок 5, отрезок 7] Трасса 2: [отрезок 1, отрезок 5, отрезок 7] Трасса 1: [отрезок 3, отрезок 4, отрезок 6] Отрезок я сначала добавляю в список отрезков, а потом в трассу. Вот и получается двойное добавление. Боюсь я конструкторов пока... Не совсем понимаю чего там можно делать, чего нельзя делать и про что надо не забыть... Но придётся попробовать. Последний раз редактировалось Ship_1; 30.06.2017 в 16:27. |
03.07.2017, 10:29 | #20 | |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Воспользовавшись советами сделал из ID property и запихнул его присвоение в Create, изменил Add в списке, убрав Create объекта в него. Но теперь при добавлении-создании объекта программа просто прекращает работу с сообщением от винды:
Цитата:
Код:
Последний раз редактировалось Ship_1; 03.07.2017 в 10:31. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
список полиморфных объектов | denrubun | Общие вопросы C/C++ | 4 | 17.11.2013 14:38 |
Добавление своих объектов в Добавление своих объектов в двунаправленный кольцевой список | voidmain | C# (си шарп) | 3 | 21.03.2013 13:08 |
динамический список объектов | tim47 | Помощь студентам | 0 | 16.05.2012 16:17 |
проблема с идентификаторами | itwaswritten | Помощь студентам | 0 | 08.05.2010 20:34 |
Список полиморфных объектов | kaarb | Помощь студентам | 0 | 20.06.2009 11:24 |