![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Dec 2009
Сообщений: 48
|
Так, по поводу private var color:int = -1; Отменяется =( uint диапозон больше, чем int.
2alexcon314 Проблема в том, что есть понятие пустота и что-то. В данном случае для color:uint = 0 в ARGB соответствует черный цвет с альфой 100%. |
|
|||||
|
listener
|
Причем тут пустота?
Дефолтные значения как раз и призваны, чтобы не было никаких "пустот". Вы создаете объект с цветом по умолчанию, каким он будет, 0х000000 или 0х01ad45fe - это уж ваше дело. Если пользователь задавал цвет, отличный от дефлотного, то вы это увидите. Если важен именно сам факт изменеия, то в сеттере можно записывать предыдущие колоры в массив, к примеру, для отката, или эвент диспатчить или еще что-то.. помнится в АС была чудная фича Object.watch(), кажется.. Мне не понятно ваше стремление к пустоте ![]() |
|
|||||
|
Modus ponens
|
Если из чисто абстрактных соображений (на практике я как-то тоже не сталкивался с необходимостью uint - null), то, можно сделать класс обертку для uint, скажем UInt и задать в нем константу (или много констант никак не трансформирующихся в uint, но тем не менее типа UInt, и потом все мат. операции проводить через myUInt.valueOf(), где:
Но, для решения практических задач я бы так не делал. Дефолтное значение - лучше.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 48
|
Цитата:
Ну вот допустим: Есть класс Контейнер. В нем есть методы установки и получения параметра color - который возвращается в uint либо как null. Хочу узнать значение в контейнере3 и если он null попросить вернуть color от родительского контейнера и так, пока родители типа Контейнер не закончатся. Последний раз редактировалось mexoboy; 19.02.2010 в 17:07. |
|
|||||
|
listener
|
Цитата:
Не вижу каких-то проблем. Пустоты с * в топку . Впрочем, настаивать особо смысла тоже не вижу. Делайте как хотите.Последний раз редактировалось alexcon314; 19.02.2010 в 17:14. |
|
|||||
|
Modus ponens
|
Ну так вам просто нужно зарегестрировать факт изменения цвета пользователем, а цвет не может быть "никаким", он как раз и должен быть в диапазоне от 0 до FFFFFFFF. T.e. в сеттере поставьте флаг который бы и оповещал о том, вывывался сеттер или нет. Но, по-моему, об этом уже было тут сказано...
__________________
Hell is the possibility of sanity |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Был ли изменен цвет - булевы данные. uint - другой тип данных. null - третий. Не надо пытаться в стандартном типе данных передать еще и другой тип. Измените свою логику. Чтобы передать цвет - uint. Чтобы передать, был ли он изменен - Boolean. И все встанет на свои места. Не пишите новый язык для своей программы. Пишите программу по законам выбранного языка.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Не совсем понятно, причем тут строгая типизация...
Что касается заглавного поста, то лучше, имхо, в таких случаях использовать флажки. Потом в какой-то момент может потребоваться, чтобы переменная color была в начальный момент уже определена и в этом случае потребуется изменение условия проверки. Лишняя работа. Да и вообще, как показывает практика, лучше отделять фиксацию факта действия пользователя от фиксации результата его действия. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:52. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|