Let's say we have a hierarchy of interfaces: IBaseThing<T> and IChildThing:IBase<ChildThing>.
Also there are two classes like this:
internal abstract class Base<T>
{
public abstract IBaseThing<T> Thing {get;}
}
and
internal class Concrete:Base<ChildThing>
{
public override IChildThing Thing
{
get
{
return GetChildThing();
}
}
}
What will happen is as bellow:
'Concrete' does not implement inherited abstract member 'Base.get'
I want to skip casting (IChildThing)this.Thing all over Concrete class.
What I supposed to do?
IChildThing : IBase<ChildThing>is an incredibly smelly interface. May be you wantedChildThing : IBase<IChildThing>.. Cant be sure..