Made my day

Aug 16, 2010 13:28

Пример из реального кода (NDA и все такое, X, Y, Z, T - нереальные имена):

int IComparable.CompareTo(object obj ( Read more... )

извне, работа, юмор

Leave a comment

Comments 4

mezhaka August 16 2010, 11:04:42 UTC
а что в трёх местах?

Reply

der_waldgeist August 16 2010, 11:17:07 UTC
GetHashCode().CompareTo(Logon.GetHashCode())
В одном месте даже if (GetHashCode() > other.GetHashCode()) return 1;

Reply


pashapash August 16 2010, 12:11:04 UTC
руки отрывать надо. я как-то вырезал из проекта кривую реализацию identity map, в которой объекты сравнивались по GetHashCode, даже без его переопределения. падало 3 раза в месяц, на базе в пару миллионов записей.

в коде нигде коммента // have a nice debugging нет? :)

Reply


nightjarrr August 16 2010, 18:40:01 UTC
хорошо, что этот код ты мне уже показывал - тут я полминуты в него втыкал, но скачущая хреновина справа побеждала :)

а про код - если взять явный ахтунг с GetHashCode() за скобки, что больше всего мне понравилось что если есть еще класс YYY, то
new XXX().CompareTo(null as YYY) // - будет "больше", а
new XXX().CompareTo(new YYY()) // - будет exception

Reply


Leave a comment

Up