Delphi 2009 fügte die Funktion GetHashCode zu TObject hinzu. GetHashCode gibt einen Integer zurück, der für das Hashing in TDictionary verwendet wird.
Wenn Sie möchten, dass ein Objekt gut in TDictionary funktioniert, müssen Sie GetHashCode entsprechend überschreiben, so dass im Allgemeinen verschiedene Objekte verschiedene Integer-Hash-Codes zurückgeben.
Aber was machen Sie mit Objekten, die Doppelfelder enthalten? Wie verwandeln Sie diese doppelten Werte in eine ganze Zahl für GetHashCode?
In Java wird dies normalerweise mit einer Methode wie Double.doubleToLongBits oder Float.floatToIntBits gemacht. Die Dokumentation der letztgenannten Methode beschreibt sie wie folgt: "Gibt eine Darstellung des angegebenen Fließkommawertes gemäß dem IEEE 754 Fließkomma-Bit-Layout "Single Format" zurück." Dies beinhaltet einige bitweise Operationen mit unterschiedlichen Masken für die verschiedenen Bits einer Fließkommazahl.
Gibt es eine Funktion, die dies in Delphi ermöglicht?