¿Por qué lanzar a un objeto cuando se compara con nulo?
Mientras navegaba por las documentaciones de MSDN sobre las anulaciones de Equals, un punto me llamó la atención.
Sobre los ejemplos deesta página específica, se realizan algunas comprobaciones nulas y los objetos se lanzan al sistema. Tipo de objeto al hacer la comparación:
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);
}
¿Hay alguna razón específica para usar este reparto, o es solo un código "inútil" olvidado en este ejemplo?