title: Error implementing an abstract method
body: <p>I'm trying to define a base class like this</p>
  
  <pre><code>public abstract class EntityBase
   {
   // some other things here
       public abstract BindingList&lt;EntityBase&gt; BindingList();
   }
  </code></pre>
  
  <p>When I define a derived class</p>
  
  <pre><code>public class SomeEntity: EntityBase
   {
       public BindingList&lt;SomeEntity&gt; BindingList()
       {
           BindingList&lt;SomeEntity&gt; result = new BindingList&lt;SomeEntity&gt;();
           // code to populate the list
           return result;
       }
    }
  </code></pre>
  
  <p>the compiler says:</p>
  
  <blockquote>
    <p>'AbstractDataContext.SomeEntity' does not implement inherited abstract member 'AbstractDataContext.EntityBase.BindingList()'</p>
  </blockquote>
  
  <p>Obviously, the problem is that the compiler can not solve SomeEntity <strong>is</strong> EntityBase, and therefore (IMHO) should satisfy the abstract definition, so the method return does not match the definition in the base class.
  How can the derived class satisfy this requirement?</p>