title: Generic method with type constraints or base class parameter
body: <p>If I write a method accepting a parameter which derives from a <code>BaseClass</code> (or an interface), as far as I know there are two ways to achieve that:</p>
  <pre><code>void MyMethod&lt;T&gt;(T obj) where T : BaseClass { ... }
  </code></pre>
  <p>and</p>
  <pre><code>void MyMethod(BaseClass obj) { ... }
  </code></pre>
  <p>What are the differences between the two methods?</p>