¿Cómo verifico si hay nulos en una sobrecarga de operador '==' sin recursión infinita?

Lo siguiente causará una recursión infinita en el == método de sobrecarga del operador

    Foo foo1 = null;
    Foo foo2 = new Foo();
    Assert.IsFalse(foo1 == foo2);

    public static bool operator ==(Foo foo1, Foo foo2) {
        if (foo1 == null) return foo2 == null;
        return foo1.Equals(foo2);
    }

¿Cómo verifico si hay nulos?

Respuestas a la pregunta(12)

Su respuesta a la pregunta