C #: лучший способ перегрузки оператора ==, когда дело доходит до нулевых ссылок

как лучше всего перегрузить оператор ==, который сравнивает два экземпляра одного и того же класса, когда дело доходит до сравнения нулевых ссылок?

MyObject o1 = null;
MyObject o2 = null;
if (o1 == o2) ... 


static bool operator == (MyClass o1, MyClass o2)
{
  // ooops! this way leads toward recursion with stackoverflow as the result
  if (o1 == null && o2 == null) 
    return true;   

  // it works!
  if (Equals(o1, null) && Equals(o2, null))
    return true;

  ... 
}

Каков наилучший подход обрабатывать пустые ссылки в сравнении?

5
задан Andrew Florko 2 November 2010 в 07:46
поделиться