How to implement a abstract nongeneric base class, for generic derived classes in c#?
<p>This is what I want my classes to look like, but this code won't compile. How do I make it work?</p>

<pre><code>public interface ISomeInterface
{
    string AMember { get; }
}
public abstract class BaseClass
{
    public abstract ISomeInterface AObject { get; }
    public abstract IEnumerable&lt;ISomeInterface&gt; AMethod();
}

public class DerivedClass&lt;T&gt; : BaseClass where T : ISomeInterface
{
    public T AObject { get; private set; }
    public IEnumerable&lt;T&gt; AMethod()
    {
        return null;
    }
}
</code></pre>

<p><strong>Compiler errors</strong></p>

<p>'Delfin.Accountancy.DerivedClass' does not implement inherited abstract member 'Delfin.Accountancy.BaseClass.AObject.get'</p>

<p>'Delfin.Accountancy.DerivedClass' does not implement inherited abstract member 'Delfin.Accountancy.BaseClass.AMethod()'</p>

<p>Running on c# 5.0.</p>

<p><strong>Notes</strong></p>

<p>I've tried most obvious implementations, but any of them allow me to implement the base class and expose the strongly typed members at once. </p>

<p>I don't want to make the base class generic, because I'll create static methods on the base class, and also create extension methods that might work in every case of derived classes.</p>

<p>I also need the derived class to be generic, because T has more members than ISomeInterface in the real world case.</p>

<p>Thanks!</p>
