通用 TypeOf 运算符?

Shi*_*mmy 2 vb.net generics typeof generic-type-argument

Dim x = GetType(List(Of )) 'valid statement
Dim list As New List(Of String)
Run Code Online (Sandbox Code Playgroud)

现在我想看看是否list是一个List(Of T)变量:

Dim isList = TypeOf list Is List(Of )
Run Code Online (Sandbox Code Playgroud)

在最后一行,我收到一个编译错误:“Type Expected”。

TypeOf泛型是否有任何廉价性能的运算符替代方案?

cdh*_*wie 5

你必须通过反射来做到这一点:

Dim type = list.[GetType]()
Dim isList = type.IsGenericType AndAlso
    type.GetGenericTypeDefinition() = GetType(List(Of ))
Run Code Online (Sandbox Code Playgroud)