Warum wird beim Vergleich mit Null auf Objekt geworfen?

eim Durchsuchen der MSDN-Dokumentationen auf Equals-Overrides erregte ein Punkt meine Aufmerksamkei

Auf den Beispielen vondiese spezifische Seite werden einige Nullprüfungen durchgeführt und die Objekte werden beim Vergleich in den Typ System.Object umgewandelt:

public override bool Equals(System.Object obj)
{
    // If parameter is null return false.
    if (obj == null)
    {
        return false;
    }

    // If parameter cannot be cast to Point return false.
    TwoDPoint p = obj as TwoDPoint;
    if ((System.Object)p == null)
    {
        return false;
    }

    // Return true if the fields match:
    return (x == p.x) && (y == p.y);
}

Gibt es einen bestimmten Grund, diese Besetzung zu verwenden, oder ist es nur ein "nutzloser" Code, der in diesem Beispiel vergessen wurde?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage