SingleCriteria类有两个版本:SingleCriteria<B, C>
和SingleCriteria<C>
,但似乎第一个带有两(2)个类型参数的版本是无用的,至少看一下代码......
public class SingleCriteria<B, C> : SingleCriteria<C>
{
public SingleCriteria(C value)
: base(typeof (B), value) { }
protected SingleCriteria() { }
}
public class SingleCriteria<C> : CriteriaBase<SingleCriteria<C>>
{
private C _value;
public C Value { get { return this._value; } }
public SingleCriteria(C value)
{
this._value = value;
}
protected SingleCriteria() { }
protected SingleCriteria(Type type, C value)
{
this._value = value;
}
// etc ...
}
请注意,第一个调用base方法,但base方法实际上并没有对 type 参数执行任何操作。那么这一点究竟是什么呢?
答案 0 :(得分:2)
我认为具有两种通用类型的那种是较旧的,以前是唯一使用的类型。后来的版本删除了对第一种类型的需求,但现有版本是为了向后兼容。