title: Object.Equals(obj1, obj2) vs obj1.Equals(obj2)?
body: <p>Assuming both objects are not value types and both represent types which have overridden the Equals(...) method, is there any functional difference between:</p>
  
  <ul>
  <li>Calling <code>obj1.Equals(obj2)</code></li>
  <li>Calling <code>Object.Equals(obj1, obj2)</code>
  ...or are they functionally the same?</li>
  </ul>
  
  <p>The Apress book I'm reading (Pro C# 2008), which is actually quite good, refers to this method (as well as <code>ReferenceEquals(...)</code> ) as "(very helpful) static methods", but I'm struggling to see the benefit here.</p>
  
  <p>For <code>ReferenceEquals(...)</code> I can see the utility, as it is still capable of determining if two objects reference the same object (regardless of whether the <code>Equals(...)</code> method and and the <code>==</code> operator have been overridden).</p>
  
  <p>For the other...not so much; Am I just missing something here?</p>