1

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 ...
}

请注意,第一个调用基本方法,但基本方法实际上并没有对类型参数做任何事情。那么这一切的意义何在?

4

1 回答 1

2

我相信具有两种泛型类型的那个更旧,并且以前是唯一使用的那个。后来的版本不再需要第一种类型,但为了向后兼容而留下了现有的类型。

于 2013-02-12T02:35:38.433 回答