所以这里是代码:
interface A<T>
{
T Save();
}
interface B : A<B>
{
}
class BusinessBase<T>
{
T Save();
}
class D<T, U> : BusinessBase<T>
where T : BusinessBase<T>
where U : B<U>
{
new U Save()
{
base.Save(); // this is where the error is because T can't be converted to U
}
}
class Concrete : D<Concrete , B>, B
{
}
因此,我希望拥有的是一个基类,它定义了 A 的所有方法,这些方法实际上只是重定向到 C 中的方法。但是为了支持 IoC 和 CSLA,它必须是这种方式。所以我正在寻找的是让 D 中的保存返回 U 而不是 T 以匹配接口签名..
我已经盯着这个看了一段时间,似乎无法弄清楚我错过了什么。