GetHashCode ist eine Performance Optimierung um Objekte zu vergleichen. Eine durchschnittliche Equals Methode muss ja alle Eigenschaften eines Objekts mit einem anderen vergleichen das ist aufwendig. Die .Net Infrastruktur wird üblicherweise immer versuchen erst GetHashcode zu verwenden bevor es auf Equals zurückgreift (insbesondere in Listen, Dictionaries, Hashsets). Und der Hash ist nicht umkehrbar. Vom Hash kannst du nicht eindeutig auf ein bestimmtest Objekt zurück schliessen. Ein gleicher Hash heißt nicht du hast das richtige Objekt (dann müsste noch der genaue Equals erfolgen). Nur bei einem ungleichen Hash Wert kannst du davon ausgehen das falsche Objekt zu haben.
Zitat: |
Aber gibt es noch andere Verwendungs-Zwecke, wie z.B. die Rück-Wandlung in das ursprüngliche Objekt? |
Der Hash sind 32 bit. Wenn die den gesamten Informationsgehalt eines komplexen Objektes beinhalten könnten wäre Magie im Spiel.