Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Используете уникальные идентификаторы для объектов?

1559  1 2 3 все
alex445 патриот05.11.24 10:30
NEW 05.11.24 10:30 
в ответ Программист 05.11.24 08:38

В твоем примере (и в 95-98% реального использования) сравнивать нужно именно состояние. А значит и сравнивать нужно через Equals.

Мне тогда нужно было именно ссылки сравнить...

Очевидно, что нет :) Во всяком случае, твоя коллекция ничего не знает о том, что объекты нельзя пересоздавать :)

Когда делаешь модели и представления, то в основе разных представлений может быть одна модель. Тогда сравнение по значениям полей покажет равенство. А мне нужно было понять, что это именно разные представления, хоть и с одинаковыми моделями.


Коллекция действительно не заботится, чтобы представления имели в основе лишь уникальные модели. Это не её задача. Тем более, что иногда надо позволять иметь дубли. Поэтому и потребовалось различать представления с одинаковыми моделями. Тут сравнение по ссылке вполне подойдёт - уникальные идентификаторы городить не надо. Я их приписал представлениям для тестовых целей, чтобы перепроверить.

#41 
AlexNek патриот05.11.24 17:22
AlexNek
NEW 05.11.24 17:22 
в ответ alex445 05.11.24 00:16
что ИИ не научили переносить строки вовремя

Зачем для мд формата то? Никогда и сам не делал смущ

Но да, для этого поста было бы желательно.

#42 
NightWatch коренной житель05.11.24 23:24
NightWatch
NEW 05.11.24 23:24 
в ответ AlexNek 04.11.24 22:57
Here's a clean approach

Оптимистично. Особенно про "clean".

This approach will prevent the single-click handler from triggering when...

Впринципе, "when" можно заменить на "at all".

Этот говнокод, конечно, работать не будет, но с синтаксисом он неплохо справился.

#43 
alex445 патриот06.11.24 00:08
NEW 06.11.24 00:08 
в ответ NightWatch 05.11.24 23:24, Последний раз изменено 06.11.24 00:11 (alex445)

Кстати, когда делаешь на одном и том же элементе обработчики на одно нажатие и на удержание, то тоже немало попотеть приходится, если не знать, как. Обычно события удержания нету, и надо его самому эмулировать. При этом надо сделать, чтобы оно не помешало событию нажатия. Тут надо тогда заменить одно нажатие на клик - т.е. нажатие и отжатие на одном и том же элементе. А ужержание, если такого обработчика нет изначально, эмулируется подпиской сразу на три события: нажатия, отжатия и покидания элемента (если такое событие в вашем фреймворке есть). Далее после нажатия притормаживаем поток параллельно выполняемой таской (Task.Delay или что там у вас для этого), в которую передаём токен отмены. Если таска задержки закончилась, то выполняем код для логики удержания нажатия контрола. В обработчиках же отжатия и покидания элемента отменяем таску задержки - логично, т.к. если слишком рано отжали или при нажатии сдвинули указатель или палец за пределы контрола, то удержания не произошло.


Проверил на своём проекте - отлично работает. Если зажал контрол, то события клика не происходит, а происходит событие удержания. А если быстро нажал и отжал - то удержания нет, а есть просто клик.


Использую это удержание для вызова подсказки по элементу там, где нельзя задержать указатель поверх элемента - для тачевых интерфейсов например.

#44 
Программист коренной житель06.11.24 08:26
NEW 06.11.24 08:26 
в ответ alex445 05.11.24 10:30
Тогда сравнение по значениям полей покажет равенство. А мне нужно было понять, что это именно разные представления, хоть и с одинаковыми моделями.

В сухом остатке мы имеем твою ошибку :) В любом случае.

Т.е. либо ты выбрал неправильный контейнер. Либо ты неправильно сравниваешь :)


Вопрос в том, чему ты на этой ошибке научишься. Если запендюришь какой-то левый id, то значит ничему ты на этой ошибке не научился :) Вот собственно и все улыб

#45 
alex445 патриот06.11.24 10:28
NEW 06.11.24 10:28 
в ответ Программист 06.11.24 08:26

Так я и создал тему, когда у меня такая ошибка вылезла. Когда всё хорошо, я чилю на сёрфинге и сюда не захожу. )))


Чему тут учиться? Я уже через время всё забуду, что тут говорили. Когда снова возникнет такая проблема, я скорее всего снова буду искать, как лучше различать объекты. Для быстрого теста такой проблемы как у меня "какой-то левый впендюренный айди" вполне подходит. Для более сложной ситуации наверное нет.

#46 
AlexNek патриот06.11.24 17:31
AlexNek
NEW 06.11.24 17:31 
в ответ NightWatch 05.11.24 23:24
Этот говнокод, конечно, работать не будет

То есть вы тоже считаете, что должен выдаваться сразу 100% рабочий результат?

Сделать код рабочим, еще одно предложение написать спок

Но идея то останется всё та же: JS, timer и две функции.

Если у вас другая идея, можно также попросить изменить.

И для проверки идеи очень неплохо. Не нравится - проси другую.

#47 
Murr патриот06.11.24 18:47
Murr
NEW 06.11.24 18:47 
в ответ AlexNek 06.11.24 17:31

То есть вы тоже считаете, что должен выдаваться сразу 100% рабочий результат?

------

Эээ...

Если выдается 15-20 строк - можно отловить проблему.

При 15-20 млн сгенерированных строк - хорошо если получится поделить на блоки...

#48 
AlexNek патриот06.11.24 19:04
AlexNek
NEW 06.11.24 19:04 
в ответ Murr 06.11.24 18:47
При 15-20 млн сгенерированных строк - хорошо если получится поделить на блоки...

О чём-то речь мы ведем? Какие миллионы?

#49 
alex445 патриот06.11.24 20:59
NEW 06.11.24 20:59 
в ответ AlexNek 06.11.24 19:04
При 15-20 млн сгенерированных строк - хорошо если получится поделить на блоки...

О чём-то речь мы ведем? Какие миллионы?

Согласен - проблема раздута. Уже выяснили, что ИИ копирует чужой уже написанный код и пытается по методу калейдоскопа смиксовать из него что-то удобоваримое. Маленькие скрипты и небольшие группы классов по известным темам, которые написаны во многих тысячах вариантов, у ИИ зоходят неплохо. Проектов на миллионы строк было куда меньше для обучения, если вообще были. Поэтому ничего подобного таким проектам ИИ выдавать не сможет. А в скорости и вообще придут к выводу, что это просто ещё одна поисковая и справочная система. При этом могущая в любой момент выдать ложный результат. Поэтому проверке должно подвергаться, по-хорошему, всё, что она выдаёт.

#50 
AlexNek патриот06.11.24 21:43
AlexNek
NEW 06.11.24 21:43 
в ответ alex445 06.11.24 20:59
что это просто ещё одна поисковая и справочная система

В этом уж точно могу разочаровать, хотя да можно и так использовать.


При этом могущая в любой момент выдать ложный результат.

В этом сомнений тоже не было.

#51 
1 2 3 все