2009-11-13 168 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 2009-11-13 11:18:05

+0

我不認爲它需要,因爲OP似乎很清楚泛型是什麼。 ;-)但與我的隊友很好。 – 2009-11-13 12:50:13