2008-12-22 3 views
3

유형이 다를 수있는 일반 객체가 포함 된 목록을 초기화하려면 어떻게해야합니까?알 수없는 유형의 일반 객체 초기화

예를 들어, 나는 다음과 같습니다

아시다시피
this.Wheres = new List<Where<>>(); 

, <>는 유효하지 않은 구문입니다. 그러나 때로는 형식 전달 된 문자열 및 DateTime 수 있습니다. 등 내가 초기화 된 형식으로 개체를 사용하여 시도했지만 그 중 하나를 작동하지 않습니다.

답변

10

글쎄, 당신은 정말 충분히 컨텍스트를 (? SqlWhere 기능) 부여하지 않은 있지만, 일반적으로 당신은 형식 매개 변수 사용하십시오 : 당신은 하나의 컬렉션 관련이없는 여러 유형을 포함 할 경우

public class Foo<T> 
{ 
    private IList<T> wheres; 

    public Foo() 
    { 
     wheres = new List<T>(); 
    } 
} 

을 값의, 그러나 당신은 사용해야합니다 List<object>

+0

감사! 그리고 귀하의 질문에 대답하기 위해 쿼리 작성기의 클래스는 어디에 있습니까. –

1
this.Wheres = new List<Object>(); 
+0

이것은 복싱을 추가하고 형식 안전을 제거합니다. – lacop

+0

목록을 다른 개체 유형으로 구성 할 수있는 경우 어떻게 방지 할 수 있습니까 ?? – Sergio

+0

이것은 OP가 요청한 것을 수행하는 올바른 방법입니다. 네, 타입 안전하지 않습니다. 그건 답이 잘못이 아니야. –

관련 문제