0

我正在做一个项目,似乎无法弄清楚如何继承以下基类

public abstract class BusinessBase<TYPE, KEY> : IDisposable
    where TYPE : BusinessBase<TYPE, KEY>, new()

我认为以下方法可行,但出现编译错误

public class Buisness{
    Business(){}
}

public class BusinessModel : BusinessBase<Business,int>
{

}

IDisposable 可以是任何其他接口。

4

1 回答 1

1
public class BusinessModel : BusinessBase<Business,int>

BusinessBase.TYPEBuisnessBusinessBase需要TYPE实现的规范,BusinessBase<>但是您没有显示Buinesss实现任何类。

看来,意图是:

public class BusinessModel : BusinessBase<BusinessModel,int>

这将满足TYPEa 的要求BusinessBase

另请注意,鉴于上述定义,以下内容也适用:

public class OtherModel : BusinessBase<BusinessModel, int>

顺便说一句,关于这在哪里有用的参考,IEquatable<T>通常是为与实现它的类相同的类型实现的。例如Foo : IEquatable<Foo>. 如果不查看源代码,BusinessBase我无法确定他们为什么需要它。

于 2013-04-10T21:43:11.717 回答