title: Different behaviour at compile time while implementing generic class from Idisposable?
body: <p>Why there is a change in behaviour in case of following codes</p>
  
  <pre><code>public class Repository&lt;T&gt; : IRepository&lt;T&gt; where T : BaseEntity, IDisposable
  </code></pre>
  
  <p>And</p>
  
  <pre><code>public class Repository&lt;T&gt; : IDisposable, IRepository&lt;T&gt; where T : BaseEntity
  </code></pre>
  
  <p>If I leave the implementation class empty, In above case it doesn't want me to implement Dispose() method. However, In below there is a need to implement Dispose() method. 
  Below is complete test code as:</p>
  
  <pre><code>public interface Itest&lt;T&gt; where T: testA{ }
  public class testA { }
  public class test2&lt;T&gt; : Itest&lt;T&gt; where T : testA,IDisposable{ } //successfully compiled
  public class test3&lt;T&gt; : IDisposable, Itest&lt;T&gt; where T : testA { }//Failed compiled : need to implement Dispose()
  </code></pre>