如果我有一个清单......
dim l as List(of MyClass) = new List(of MyClass)
我希望得到列表中包含的对象的类型,我该怎么做?
显而易见的答案,从我的实际实施中似乎不可能,就是做这样的事情......
public function GetType(byval AList as IList(of GenericType)) as System.Type
dim lResult as system.type = nothing
if AList.Count > 0 then lResult = AList(0).GetType
return lResult
end function
但是如果列表为空并且我仍然想知道它包含的类型怎么办?
答案 0 :(得分:3)
基本上,您可以使用GetGenericArguments()来获取作为泛型类型的参数提供的类型数组。在List的情况下,只有一个参数,所以你将得到你需要的东西,例如
dim l as List(of MyClass) = new List(of MyClass)
dim t as Type = (l.GetGenericArguments())(0)