这就是我希望我的类看起来的样子,但是这段代码不会编译。我如何使它工作?
public interface ISomeInterface
{
string AMember { get; }
}
public abstract class BaseClass
{
public abstract ISomeInterface AObject { get; }
public abstract IEnumerable<ISomeInterface> AMethod();
}
public class DerivedClass<T> : BaseClass where T : ISomeInterface
{
public T AObject { get; private set; }
public IEnumerable<T> AMethod()
{
return null;
}
}
编译器错误
'Delfin.Accountancy.DerivedClass' 没有实现继承的抽象成员 'Delfin.Accountancy.BaseClass.AObject.get'
'Delfin.Accountancy.DerivedClass' 没有实现继承的抽象成员 'Delfin.Accountancy.BaseClass.AMethod()'
在 c# 5.0 上运行。
笔记
我已经尝试过最明显的实现,但其中任何一个都允许我实现基类并立即公开强类型成员。
我不想使基类通用,因为我将在基类上创建静态方法,并创建可能适用于派生类的每种情况的扩展方法。
我还需要派生类是通用的,因为在现实世界的情况下,T 的成员比 ISomeInterface 多。
谢谢!