VB.Net - 我如何获得List中包含的对象的类型

时间:2010-08-11 22:53:10

标签: vb.net ilist gettype

如果我有一个清单......

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

但是如果列表为空并且我仍然想知道它包含的类型怎么办?

1 个答案:

答案 0 :(得分:3)

MSDN, here

上有一篇很好的文章

基本上,您可以使用GetGenericArguments()来获取作为泛型类型的参数提供的类型数组。在List的情况下,只有一个参数,所以你将得到你需要的东西,例如

dim l as List(of MyClass) = new List(of MyClass)
dim t as Type = (l.GetGenericArguments())(0)