^
è il C# XOR operator. Niente di "speciale" al riguardo, solo che i codici hash di tutte le proprietà della classe sono XOR insieme.
Modifica: GetHashCode
restituisce un codice generico che viene utilizzato come identificatore di una stenografia per un oggetto complesso. Un uso comune è nelle strutture di dati hashing quando si desidera archiviare oggetti e quindi recuperarli rapidamente in base al loro codice hash. Assumere una classe Person
e alcuni oggetti con i corrispondenti codici hash:
Alex 8540
John 9435
Peter 2453
Questi codici vengono generati sulla base alcuni o tutti i campi di ogni oggetto e devono toccarsi il meno possibile garantire hashing efficiente. Ora possiamo memorizzare gli oggetti in una tabella hash utilizzando il codice hash:
Entries
0 -> Alex
1 -> John
2 -> Peter
Gli oggetti vengono memorizzati all'interno della tabella utilizzando i rispettivi codici hash per determinare la posizione. Successivamente possono essere facilmente recuperati utilizzando lo stesso codice hash.
Ti suggerisco di trovare della letteratura su come funzionano le tabelle hash, perché è un po 'troppo da spiegare in un post SO.
Molte risposte hanno indicato che è l'operatore XOR. È usato qui solo per creare un hashcode combinato. Dai un'occhiata a questo post qui su SO: http://stackoverflow.com/questions/1079192/is-it-possible-to-combine-hash-codes-for-private-members-to-generate-a-new- hash –