title: GetHashCode(obj): why in some cases it's designed with an argument?
body: <p>I've just noticed that e.g. interface <code>IEqualityComparer&lt;T&gt;</code> provides <code>public int GetHashCode(T obj)</code>. <br>
  I've seen more often <code>public int GetHashCode()</code> variant in another interfaces/classes. Why it's designed with an input argument? I understand that in 'with argument' case returned value won't be based on caller object, but method's argument. The only way it's needed seems to me to GetHashCode of null object, is it? <br>
  And the last question: what should be the caller object(i.e. owner of GetHashCode method)?</p>
  
  <p>Thanks!</p>
  
  <hr>
  
  <p><strong>UPD</strong>. Marked the earliest from right existed answers as the answer. Thanks a lot!</p>