Dim x = GetType(List(Of )) 'valid statement
Dim list As New List(Of String)
现在我想看看list
是否为List(Of T)
变量:
Dim isList = TypeOf list Is List(Of )
在最后一行,我收到编译错误:“Type Expected”。
对于泛型,是否有任何廉价的TypeOf
运营商替代方案?
答案 0 :(得分:4)
你必须用反射来做到这一点:
Dim type = list.[GetType]()
Dim isList = type.IsGenericType AndAlso
type.GetGenericTypeDefinition() = GetType(List(Of ))
答案 1 :(得分:1)
不幸的是,这是不可能的。
您需要致电GetType()
并查看IsGenericType
和GetGenericTypeDefinition
。
答案 2 :(得分:0)
参见Hanselman的博客:http://www.hanselman.com/blog/TheVBEquivalentToCTypeofKeyword.aspx
GetType(T) - 就这么简单:)。