Heim > Backend-Entwicklung > C++ > Wie kann man eine konsistente Objektgleichheit und Hashing in C#beibehalten?

Wie kann man eine konsistente Objektgleichheit und Hashing in C#beibehalten?

Barbara Streisand
Freigeben: 2025-02-02 15:21:10
Original
308 Leute haben es durchsucht

How to Maintain Consistent Object Equality and Hashing in C#?

Die Konsistenzwartung des Objektäquivalents und der Hash -Wert im C#

Die Equals -Methode in der FOO -Klasse wiederwarten, um das FOOID -Attribut zu vergleichen, um die Konsistenz des Objekts gleich zu gewährleisten. Das Umschreiben der Gethashcode -Methode ist jedoch auch sehr wichtig, um den Regeln dieser beiden Methoden einzuhalten.

Die Bedeutung des Umschreibens von Gethashcode

Wenn das Objekt als Schlüssel in Datenstrukturen wie Wörterbuch oder Hash -Set verwendet wird, wird Gethashcode verwendet, um zu bestimmen, welcher Lauf platziert werden soll, in welcher Fass platziert werden soll. Wenn der Hash -Code der beiden Objekte (definiert durch Gleichen) als unterschiedlich angesehen werden sollte, können sie niemals verglichen werden, was zu einer falschen Bewertung der gleichen Natur führt.

Gethashcode von Empfehlung Realisierung

In diesem Fall lautet die Empfehlung von Gethashcode:

Dies steht im Einklang mit der Logik der Equals -Methode.

Erweiterte Überlegung
public override int GetHashCode() => base.GetHashCode();
Nach dem Login kopieren

Für kompliziertere Objekte, die mehrere Attribute in der gleichen Natur beinhalten

<加> Fügen Sie Bequemlichkeit

hinzu

Aus Gründen der Bequemlichkeit können Sie die Implementierung in Betracht ziehen.

public override int GetHashCode()
{
    unchecked
    {
        int hash = 13;
        hash = (hash * 7) + FooId.GetHashCode();
        hash = (hash * 7) + FooName.GetHashCode();
        return hash;
    }
}
Nach dem Login kopieren
Durch die Beobachtung dieser Prinzipien kann es das konsistente Verhalten gleicher Natur und Hash gewährleisten und damit die Zuverlässigkeit und Leistung der Anwendung verbessern.

Das obige ist der detaillierte Inhalt vonWie kann man eine konsistente Objektgleichheit und Hashing in C#beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage