Почему приведение к объекту при сравнении с нулем?

Просматривая документацию MSDN о переопределениях Equals, один момент привлек мое внимание.

На примерахэта конкретная страница, некоторые нулевые проверки выполняются, и объекты приводятся к типу System.Object при выполнении сравнения:

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);
}

Есть ли конкретная причина для использования этого приведения, или это просто какой-то «бесполезный» код, забытый в этом примере?