|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 45
|
|||||||||||
Не изменяется свойство09.11.2013, 21:29. Показов 1528. Ответов 8
Метки нет (Все метки)
Добрый вечер!
Задача - написать упрощенный эмулятор бытовых приборов. Есть два класса: родитель Device.cs и его наследник Lamp.cs При создании объекта myLamp мы задаем только его имя. Изначальное состояние - лампа выключена, а следовательно яркость 0, и менять мы ее не можем. Когда мы включаем лампу, яркость - 10. Единственные действия с ней: включение, выключение, Добавить яркость, Убавить яркость. Проверку на корректное изменение яркости я реализовал свойстве Bright через сеттер. Но, проблема в том, что когда я создаю объект, все его изначальные свойства корректные (имя, статус, яркость), но вот когда я хочу включить лампу, изменяется только статус (с true на false), а вот яркость остается неизменной. Прилагаю коды классов: //Класс Device.cs Кликните здесь для просмотра всего текста
//Класс Lamp Кликните здесь для просмотра всего текста
0
|
|||||||||||
| 09.11.2013, 21:29 | |
|
Ответы с готовыми решениями:
8
Не изменяется свойство объекта Не изменяется программно свойство Kind кнопки BitBtn
|
|
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
|
|||
| 09.11.2013, 21:35 | |||
|
1
|
|||
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 45
|
||||||
| 09.11.2013, 21:41 [ТС] | ||||||
|
lpvoid, меняется только статус, потому что класс Device наследует не только класс Lamp (в котором можно изменить яркость), но и Radio.cs и TV.cs. В TV яркость меняется, а вот в Radio, только громкость. По этому я не могу в методе On() ничего поменять кроме статуса.
Я думал, что таким образом все будет работать, поскольку яркость зависит от статуса
0
|
||||||
|
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
|
||
| 09.11.2013, 21:43 | ||
|
1
|
||
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 45
|
||||||
| 09.11.2013, 21:45 [ТС] | ||||||
|
lpvoid, то есть, если я напишу
0
|
||||||
|
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
|
|
| 09.11.2013, 21:47 | |
|
OverBack, нет. ошибкой с точки зрения ооп было поместить это свойство в класс Device, если оно используется только наследником Lamp. если оно используется еще какими-то наследниками, следовало и назвать его соответствующе, просто bright то бишь.
1
|
|
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 45
|
|
| 09.11.2013, 21:51 [ТС] | |
|
lpvoid, Нет, это свойство используется еще в классе TV, по этому я подумал, что разумнее будет поместить свойство в класс Device, чтобы не дублировать его в TV. Хоть это я правильно сделал?
А по поводу имени, согласен, переименовал в devBright
0
|
|
|
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
|
|
| 09.11.2013, 21:54 | |
|
OverBack, это вполне правильно).
Добавлено через 2 минуты Не по теме: а вообще, если уж совсем правильно, то лампа, теоретически, должна завести в себе переменную lastBright и после выключения яркость лампы должна быть сохранена в этой переменной, а при включении она должна быть присвоена переменной bright, дабы было уж совсем реалистично (ведь настольная лампа с регулятором яркости эту самую яркость после включения-выключения сохраняет).
1
|
|
|
1 / 1 / 0
Регистрация: 18.09.2010
Сообщений: 45
|
||||||||||||
| 10.11.2013, 02:44 [ТС] | ||||||||||||
|
lpvoid,
Добавлено через 4 часа 47 минут Проблема остается в силе. Имеем свойство:
Когда я хочу вывести текущее состояние, я обращаюсь к этому свойству, но ничего не происходит. Геттер возвращает мне старое значение. Окей. Напишем метод:
Добавлено через 1 минуту Данные обновляются только если я обращаюсь к set, а вот get возвращает неактуальную информацию
0
|
||||||||||||
| 10.11.2013, 02:44 | |
|
Помогаю со студенческими работами здесь
9
Как заставить свойство "Text" компонента Label забиндиться на свойство TheChar из пользовательского класса
Id не изменяется повторно Не изменяется Владелец Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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. Пошагово создадим проект для загрузки изображения. . .
|