2012-04-04 15 views
0

我有一个通用的方法定义如下如何找到如果一个泛型类型是列表<>

public T MyMethod<T>(extra params) 

我的方法可以接收和返回无论是单实体类型也列出。 我怎样才能找到如果T传递是一个单一的实体类型或列表,在这种情况下,我怎么能得到内部类型T1的类型?

感谢

回答

1

为此,您可以使用Type类的方法:

var type = typeof(T); 
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>)) { 
    var innerType = type.GetGenericArguments()[0]; 
}