Правильный ответ: К счастью собеседователь рассказал что он уходи в бесконечную рекурсию т.к.
на строчке if(o1 == null) null приводится к типу MyClass и в теле оператора происходит тоже самое.
Проблема в том, что мне не удается это воспроизвести.
Мало того что не хватает перегруженного оператора != так и для потомка object так же необходимо перегрузить
методы:
public override int GetHashCode()
public override bool Equals(object o)
Мой окончательный вариант:
class MyClass
{
public override int GetHashCode()
{
return 100;
}
public override bool Equals(object o)
{
MyClass m = (MyClass)o;
if (this == m) return true;
else return false;
}