CSLA SingleCriteria - 具有2个泛型类型参数的版本有什么意义?

时间:2012-08-01 15:03:28

标签: c# .net csla

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 参数执行任何操作。那么这一点究竟是什么呢?

1 个答案:

答案 0 :(得分:2)

我认为具有两种通用类型的那种是较旧的,以前是唯一使用的类型。后来的版本删除了对第一种类型的需求,但现有版本是为了向后兼容。