Ich habe eine Klasse, in der ich Equals basierend auf zwei Uint-Werten überschrieben habe. Da ich Equals überschrieben habe, muss ich GetHashCode überschreiben.Was ist die beste Methode, zwei uints zu einem int zu kombinieren, um GetHashCode() zu überschreiben?
Der eine Uint-Wert repräsentiert eine ID, die niemals ein Duplikat haben sollte. Es ist nicht unbedingt ein automatisch inkrementierender int-Wert, sollte aber in den meisten Fällen sein. Der zweite Wert von uint stellt ein Typfeld für das Objekt dar.
Verwenden Sie nur das ID-Feld sollte genug sein. In einigen Fällen könnte es jedoch ein wenig restriktiv sein, weshalb ich die ID und den Typ kombinieren wollte.
Ich dachte daran, die zwei Zahlen zusammen zu addieren und dann die höherwertigen Bits mit den niederwertigen Bits mittels XOR zu kombinieren.
Irgendwelche anderen Ideen?
Kann die 'uint ID' Feld wirklich die ganze Bandbreite der' uint' besetzen? – Ani
Wir sollten es ja erlauben. – uriDium
* Aber es könnte in einigen Fällen ein wenig restriktiv sein * - Können Sie etwas mehr darüber erklären, wo die Fälle sind, wo nur das ID-Feld zu restriktiv für Sie ist? –