Jak wiesz, GetHashCode zwraca wartość semi-unique, która może być użyta do identyfikacji instancji obiektu w kolekcji. Jako dobrą praktykę zaleca się zastąpienie tej metody i wdrożenie własnej.Nadpisywanie kodu GetHashCode
Moje pytanie brzmi - czy zastępujesz tę metodę podczas pracy nad niestandardowymi obiektami? Jeśli tak, to jakiego algorytmu używasz do generowania unikalnego identyfikatora?
Zastanawiam się nad wygenerowaniem identyfikatora GUID, a następnie uzyskaniem danych liczb całkowitych z tego identyfikatora.
Mają lektury [to pytanie] (http: // stackoverflow.com/questions/263400/what-is-is-the-best-algorithm-for-anridden-system-object-gethashcode) i jego odpowiedzi. Przedstawia on dobrą implementację kodu skrótu. Istnieje również dobra dyskusja na temat ominięcia 'GetHashCode' dla zmiennych obiektów [tutaj] (http://stackoverflow.com/questions/873654/overriding-gethashcode-for-muteable-objects-c). – adrianbanks
Nie wiem, co "pół-unikalny" oznacza ... wartość jest albo unikalna, albo nie jest, a kod skrótu nie jest unikalny. Dlatego nie pozwala na identyfikację obiektu na liście. I nie jest to "dobrą praktyką" nadpisywanie 'GetHashCode', to jest coś, co robisz, kiedy * potrzebujesz *, aby (np. Użyć obiektu jako klucza w słowniku), a nie dlatego, że uważasz, że jest to dobra praktyka. –
Używanie obiektu jako klucza można uznać za identyfikujące obiekt w kolekcji - właśnie dlatego szukam informacji na temat najlepszego algorytmu do budowania identyfikatora. Od pół-unikalnych identyfikatorów: http://www.west-wind.com/Weblog/posts/4741.aspx –