如果对象是泛型类型,我想执行一个测试.我try 了以下方法但没有成功:
public bool Test()
{
List<int> list = new List<int>();
return list.GetType() == typeof(List<>);
}
我做错了什么?我该如何执行此测试?
如果对象是泛型类型,我想执行一个测试.我try 了以下方法但没有成功:
public bool Test()
{
List<int> list = new List<int>();
return list.GetType() == typeof(List<>);
}
我做错了什么?我该如何执行此测试?
如果要判断它是否是泛型类型的实例:
return list.GetType().IsGenericType;
如果要判断它是否为通用List<T>
:
return list.GetType().GetGenericTypeDefinition() == typeof(List<>);
正如Jon指出的,这判断了确切的类型等价性.返回false
并不一定意味着list is List<T>
返回false
(即,不能将对象分配给List<T>
变量).