그래서 개체가 특정 생성자를 사용하여 인스턴스화되었는지 확인하는 것에 대한 질문이 있습니다. 검색 엔진의 일부인 SearchWithTwoLevelCore라는 클래스가 있습니다. 그것은이 같은 생성자가 : S, lvl1 및 lvl2 모든 민간 분야가 공공 클래스의 객체를 보유하고있는 클래스에 선언되어있다인스턴스가 제대로 인스턴스화되었는지 확인하는 가장 좋은 방법
public SearchWithTwoLevelCache(ISearchCore s, ICurrentTimeProvider tp)
{
//Initialize the two levels.
S=s;
lvl2 = TimeBoundedQueryCache(s.AsQueryDataSource, tp, TimeSpan(24,0,0));
lvl1 = SizeBoundedQueryCache(lvl2, 10);
}
. 그럼 내가 SearchWithTwoLevelClass 안에 상주하고 싶은 퍼블릭 메소드를 가지고 있지만 먼저 SearchWithTwoLevelCache를 만드는데 사용 된 생성자가 위의 메소드인지 확인하기를 원한다. 그렇지 않으면 메소드가 제대로 실행되지 않고 예외가 발생한다. 티. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 미리 감사드립니다.
여러 생성자가 있고 해당 메서드가 호출 된 생성자를 기반으로하는 개체의 상태에 의존하는 경우 이러한 인수를 함수 호출 자체로 이동하는 것이 좋습니다. 그렇게하면 시퀀스 종속성이 없으며 메서드를 호출 할 수있는 유일한 방법은 성공하는 데 필요한 데이터를 사용하는 것입니다. – dash
"인스턴스가 올바르게 인스턴스화되었는지 확인하는 가장 좋은 방법은 아마도"* SearchWithTwoLevelCache를 만드는 데 사용 된 생성자가 위의 것이 었는지 확인하지 않을 것입니다. " – haim770