泛型类型参数和类型

时间:2009-11-13 09:18:32

标签: c# generics types

我有一些代码如下所示。我想知道是否有可能为传递给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.
}

1 个答案:

答案 0 :(得分:12)

只需使用:

Type type = typeof(T);

通用参数与任何其他类型一样,除了您不知道该类型在编译时到底是什么,因此假设它是对象层次结构中最重要的,它符合给定的类型约束(对于没有约束的系统。对象)。