我正在审查一些前雇员编写的一些代码,发现了这个
public abstract class BaseClass<T, M>
where T : BaseClass<T, M>, M
where M : IDisposable
{
protected M PropertyName {get; private set}
...
// T is never used in this class. Only M is used
}
继承的类是这样定义的
public class InheritedClass : BaseClass<InhertiedClass, IFooInterface>, IFooInterface
{
...
}
IFooInterface : IDisposable {...}
我的问题是为什么基类指定一个从自身继承的泛型类型 T ?如果我删除这个通用约束,那么什么都不会改变,所以我想知道为什么它首先存在?像这样指定我不知道的通用约束有什么好处吗?