Im letzten Teil (siehe: Ein eigener Datentyp (Teil 5)) haben wir uns um die Konvertierung aus Standard-Datentypen gekümmert. In diesem Teil soll es nun um die überschriebenen Methoden der Basisklasse – Object – gehen. Hier müssen wir die Implementierung für drei Methoden vornehmen, „Equals(object)“, „GetHashCode()“ sowie „ToString()“. Beginnen wir mit der „Equals“-Methode. Diese ist eigentlich auch schon die „komplizierteste“ der drei genannten. Hier würde ich die folgende Implementierung vorschlagen:
public override bool Equals(object obj) { return ((obj is Int24) && (Value == ((Int24)obj).Value)) || ((obj is int) && (Value == (int)obj)); }
Weiter geht es nun mit der „GetHashCode“-Methode. Bei dieser können wir uns der vorhandenen Methode aus dem internen Integer-Typen zu Nutze machen. Von daher haben wir folgende total simple Implementierung:
public override int GetHashCode() { return Value.GetHashCode(); }
Zu guter Letzt noch die „ToString“-Methode. Auch diese sieht nicht weiter komplex aus.
public override string ToString() { return Value.ToString(CultureInfo.InvariantCulture); }
Damit wären wir mit diesem Teil auch bereits durch. Im nächsten Teil wird es im der Interface Implementierung der „IComparable“-Schnittstelle gehen.