title: Default implementation for Object.GetHashCode()
body: <p>How does the default implementation for <code>GetHashCode()</code> work? And does it handle structures, classes, arrays, etc. efficiently and well enough?</p>
  
  <p>I am trying to decide in what cases I should pack my own and in what cases I can safely rely on the default implementation to do well. I don't want to reinvent the wheel, if at all possible.</p>