测试对象是否为通用类型在C#

我想执行一个测试,如果一个对象是一个泛型类型。我试过下面没有成功:

public bool Test()
{
    List<int> list = new List<int>();
    return list.GetType() == typeof(List<>);
}

我做错了什么,我该如何进行这个测试?

如果你想检查它是否是一个泛型类型的实例:

return list.GetType().IsGenericType;

如果您想要检查它是否为通用列表< T&gt ;:

return list.GetType().GetGenericTypeDefinition() == typeof(List<>);

正如Jon指出的,这检查确切的类型等价。返回false不一定意味着list是List< T>返回false(即,该对象不能被分配给List< T>变量)。

http://stackoverflow.com/questions/982487/testing-if-object-is-of-generic-type-in-c-sharp

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:测试对象是否为通用类型在C#