Вниз
Скачать: CL | DM;

Сравнение   Найти похожие ветки 

← →
Ega23 ©   (2007-09-28 17:19) [40]


> Клоню к тому, что если оба объекта являются объектами единого
> класса-наследника TComponent, и св-ва, подлежащие сравнению,
>  являются опубликованными, то сравнение сводится к элементарной
> записи обоих объектов в потоки и тривиальное бинарное сравнение
> (ComareMem) содержимого этих потоков.


Нечто подобное я ещё в [1] предлагал.
Хотя для Tcomponent c его WriteComponent - действительно интересное решение.
Возьму на заметку.


← →
Сергей М. ©   (2007-09-28 17:22) [41]


> Ega23 ©   (28.09.07 17:19) [40]


> Tcomponent c его WriteComponent


Точнее Read/WriteComponent - это меоды стримов, а не компонентов.
Но суть одна и та же.


← →
Sandman31   (2007-09-28 17:37) [42]

Записывать в потоки, чтобы сравнить 2 объекта???
Посмотрите на то, как сравнение организовано в java. Метод equals(Object) находится в предке всех классов, а различные IDE позволяют генерировать тело метода автоматически. Да еще и hascode автоматически генерировать, чтобы правильно работали коллекции типа Hashtable.


← →
ferr ©   (2007-09-28 17:38) [43]

> а различные IDE позволяют генерировать тело метода автоматически.
> Да еще и hascode автоматически генерировать, чтобы правильно
> работали коллекции типа Hashtable.

Что-то мне кажется что это дело компилятора а не ide.


← →
Сергей М. ©   (2007-09-28 17:42) [44]


> Sandman31   (28.09.07 17:37) [42]



> Записывать в потоки, чтобы сравнить 2 объекта


Почему бы и нет, если свойств не так уж и много ?
Это по сути тот же циклический проход по опубликованным св-вом, но неявный.


> Метод equals(Object) находится в предке всех классов


Ничто не мешает реализовать его функц.аналог в данном случае.


← →
Sandman31   (2007-09-28 17:44) [45]

ferr ©   (28.09.07 17:38) [43]

Программист может подкорректировать, если хочет.


← →
Сергей М. ©   (2007-09-28 17:45) [46]


> Sandman31   (28.09.07 17:44) [45]


Кстати, наверняка существуют ДелфиIDE-эксперты, делающие то же самое.


← →
Sandman31   (2007-09-28 17:46) [47]

Сергей М. ©   (28.09.07 17:42) [44]

Почему бы и нет, если свойств не так уж и много ?

1. Потому что происходят лишние операции. Особенно если отличия в первом поле.
2. Программист учится плохому :)


← →
Sandman31   (2007-09-28 17:47) [48]

Сергей М. ©   (28.09.07 17:45) [46]

Надеюсь. Вот их и надо использовать, а не изобретать квадратное колесо.


← →
KSergey ©   (2007-09-28 17:51) [49]

> Сергей М. ©   (28.09.07 17:42) [44]
> > Записывать в потоки, чтобы сравнить 2 объекта
> Почему бы и нет, если свойств не так уж и много ?

Да как бы это... Дороговасто, однако, получается. И памяти как минимум еще на 2 копи объекта надо...
не, комп. железный, конечно, но как-то это...


← →
имя   (2007-10-07 22:11) [50]

Удалено модератором


← →
имя   (2007-10-07 22:13) [51]

Удалено модератором



Страницы: 1 2 вся ветка

Скачать: CL | DM;



Память: 0.54 MB
Время: 0.014 c
2-1192287799
magik_snake
2007-10-13 19:03
2007.11.04
билд проекта....


2-1192198988
Neo
2007-10-12 18:23
2007.11.04
как закрыть форму, если выполняется большой цикл?


2-1192105505
vint45
2007-10-11 16:25
2007.11.04
Резкое увеличение размера динамического массива


15-1191739911
kolya_tt
2007-10-07 10:51
2007.11.04
TEdit color


2-1192101439
snake-as
2007-10-11 15:17
2007.11.04
Переместить объект на форме




   Наверх