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?