Ostatnio widzę dużo wpisów na temat debugowania aplikacji. Nie trafiłem jednak na opis dwóch rzeczy, które bardzo tą czynność ułatwiają, mianowicie, zmiana kolejności wykonywania kodu oraz GetHashCode()Zmiana kolejności wykonywania kodu Czy zdarzyło Ci się podczas debugowania przejechać o tą jedną linijkę za daleko? Nic prostszego, chwyć żółtą strzałkę i przesuń kilka linijek do tyłu i wykonaj kod jeszcze raz. To jest tak proste, że aż niebywałe, że niektórzy o tym nie wiedzą. Teraz już w...
Funkcja GetHashCode używana jest tylko i wyłącznie w przypadku korzystania z kolekcji typu klucz wartość jak HashSet lub Dictionary. Funkcja ta nie jest tak oczywista jak się to zdaje i napisanie poprawnej jej wersji sprawia wiele problemów.
Ostatnio natknąłem się na pułapkę metody GetHashCode(). Jak wiadomo metoda ta służy do sprawdzenia, czy mamy do czynienia z dwoma tymi samymi obiektami jednej klasy. Cytująć MSDN: "A hash code is a numeric value that is used to identify an object during equality testing" Mój błąd polegał na tym, że wiedząc, że GetH...
W poprzedniej notce pisałem o implementacji lock’a i do zilustrowania pewnych szczegółów użyłem metody GetHashCode analizowanego obiektu. Tym razem przyjrzymy się bliżej samej metodzie GetHashCode, dziedziczonej przez wszystkie klasy z bazowej klasy Object i często traktowanej po macoszemu, lub też bez właściwego zrozumienia. Niestety potrafi się to zemścić, a w jaki sposób, to spróbuję za chwilę zademonstrować, po czym postaram się podać kilka rad co z tym fantem począć. O tym, że metoda GetHashCode jes...
Metoda w obiekcie GetHashCode() służy do generowania prostego (Int32) skrótu danego obiektu. We własnych klasach powinniśmy ją nadpisać, szczególnie jeśli dane obiekty będą wykorzystywane w kolekcjach typu Dictionary i HashSet. Jednak powinniśmy zrobić to prawidłowo, przestrzegając 3 prostych zasad...