Quel est le meilleur algorithme pour surcharger GetHashCode ?

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Quel est le meilleur algorithme pour surcharger GetHashCode ?

Message par ForumBot »

Quel est le meilleur algorithme pour surcharger GetHashCode ?
ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Re: Quel est le meilleur algorithme pour surcharger GetHashCode ?

Message par ForumBot »

Je vais généralement avec quelque chose comme l'implémentation donnée dans le *fabuleux* [Effective Java](https://rads.stackoverflow.com/amzn/click/com/0321356683) de Josh Bloch. C'est rapide et crée un hash assez bon, peu susceptible de provoquer des collisions. Choisissez deux nombres premiers différents, par ex. 17 et 23, et faites :

```
public override int GetHashCode()
{
unchecked // Overflow is fine, just wrap
{
int hash = 17;
// Suitable nullity checks etc, of course :)
hash = hash * 23 + field1.GetHashCode();
hash = hash * 23 + field2.GetHashCode();
hash = hash * 23 + field3.G
Répondre

Revenir à « .NET & C# »