2009-11-13 8 views
1

다음과 같이 작동하는 몇 가지 코드가 있습니다. DoSomething 함수에 전달 된 제네릭 형식에 대한 Type 개체를 가져올 수 있는지 궁금합니다. 나는 T가 타입 매개 변수라는 것을 알았지 만 이것을 어떻게 타입 객체로 바꾸는 것이 좋을까요? dosomething 함수는 목록 객체에서 사용되는 기본 유형을 알고 싶은 클래스에 있습니다.일반 유형 매개 변수 및 유형

[STAThread] 
static void Main(string[] args) 
{ 
    List<string> stringList = new List<string>(); 
    DoSomething(stringList); 
} 
public void DoSomething<T>(List<T> collection) 
{ 
    //Type myType = T; ??!!? 
    //do something here with the list. 
} 

답변

12

그냥 사용 : 당신이 정확히 타입이 컴파일시에 무엇인지 모르는 제외하고

Type type = typeof(T); 

일반 매개 변수가 가정 있도록 오브젝트의 가장 위에, 다른 유형처럼 주어진 제약 조건에 맞는 계층 구조입니다 (제약 조건이없는 경우 해당 System.Object).

+0

생각 나는 정확하게 제네릭 타입이 무엇인지에 대한 정보를 추가 할 것입니다. 괜찮습니다. – RCIX

+0

OP가 일반 유형이 무엇인지 잘 알고있는 것처럼 나는 그것이 필요하지 않다고 생각합니다. ;-)하지만 나와 친구 야. –