Dim x = GetType(List(Of)) 'valid statement
Dim list As New List(Of String)
现在我想看看是否list
是List(Of T)
变量:泛型TypeOf运算符?
Dim isList = TypeOf list Is List(Of)
在最后一行我得到一个编译错误:“类型的预期”。
是否有任何便宜的性能TypeOf
运算符替代泛型?
Dim x = GetType(List(Of)) 'valid statement
Dim list As New List(Of String)
现在我想看看是否list
是List(Of T)
变量:泛型TypeOf运算符?
Dim isList = TypeOf list Is List(Of)
在最后一行我得到一个编译错误:“类型的预期”。
是否有任何便宜的性能TypeOf
运算符替代泛型?
你将不得不与反思这样做:
Dim type = list.[GetType]()
Dim isList = type.IsGenericType AndAlso
type.GetGenericTypeDefinition() = GetType(List(Of))
不幸的是,这是不可能的。
您需要致电GetType()
并检查IsGenericType
和GetGenericTypeDefinition
。
见Hanselman的博客:http://www.hanselman.com/blog/TheVBEquivalentToCTypeofKeyword.aspx
的GetType(T) - 就是这么简单:)。
道歉,道歉。 OP正在测试参数化列表类型。我打这个QA寻找一个类型(T)的等价物,所以如果其他人像我一样误导了... – bkrakower 2015-09-22 12:31:11
+1表示'不幸'。 – Shimmy 2011-01-05 02:54:32