2012-08-01 3 views
1

는 두 SingleCriteria 클래스의 버전이 있습니다 ... SingleCriteria<B, C>SingleCriteria<C>하지만, 2 개의 입력 매개 변수를 사용하여 첫 번째가 최소한의 코드를 찾고, 쓸모없는 것 같다CSLA SingleCriteria - 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 ... 
} 

첫 번째 메서드는 기본 메서드를 호출하지만 기본 메서드는 매개 변수를 사용하여 실제로 아무 것도 수행하지 않습니다. 그래서 이것의 핵심은 무엇입니까?

+0

MobileFormatter에서 사용되는 생성자 인 것으로 보입니다 (아마도 리플렉션을 통해). 형식은 단순히 해당 생성자와 그 위에있는 SingleCriteria (C 값)를 구분하기위한 것일뿐입니다. 제네릭이 선상에 나오고 처리되지 않았기 때문에 유물이라고 확신합니다. –

답변

2

저는 두 가지 일반적인 유형이있는 것이 더 오래되었고 이전에는 사용할 수있는 유일한 도구라고 생각합니다. 최신 버전에서는 첫 번째 유형의 필요성이 없어졌지만 기존 버전과의 호환성을 위해 기존 유형이 남아있었습니다.