
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.09.2010, 16:46:22
|
|||
|---|---|---|---|
|
|||
Как правильно описать методы GetHashCode и Equals |
|||
|
#18+
Всем доброго дня. Подскажите, пишу некую библиотеку классов. Есть базовый класс, скажем TOBJECT { guid, function GetHashCode(), function Equals(obj TOBJECT) } Описание конструктора и других методов не стал приводить. Так вот, HashCode я получаю на основании guid. Guid формируется в конструкторе. Так же есть кэш этих объектов. Задача состоит в том, чтобы в конструкторе посмотреть, существует ли данный объект в кэше и соответственно вернуть именно этот объект из кэша. Например, есть класс TUSER { name } В кэше содержится объект TUSER(Иван). И я пытаюсь создать такой же объект с тем же параметром TUSER(Иван). На каком основании проводить сравнение? По идее если объект1.Equals(объект2)==true, то и объект1.GetHasCode()==объект2.GetHasCode(), но в моем случае я у базового класса для определения HASHCODE использую тот самый Guid, т.е. объект1.GetHasCode()!=объект2.GetHasCode(). Я понимаю, что HashCode необходимо формировать на основании атрибутов класса, но если эти атрибуты пусты, то и Hashcode для двух пустых объектов будут равны. Разве это справедливо в данном случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&mobile=1&tid=1343450]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
16ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 316ms |

| 0 / 0 |
