Общий оператор TypeOf? - PullRequest
       47

Общий оператор TypeOf?

1 голос
/ 05 января 2011
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 )

В последней строке я получаю сообщение об ошибке компиляции: «Ожидаемый тип».

Есть ли альтернатива оператору TypeOf с низкой производительностью для генериков?

Ответы [ 3 ]

4 голосов
/ 05 января 2011

Вам придется сделать это с отражением:

Dim type = list.[GetType]()
Dim isList = type.IsGenericType AndAlso
    type.GetGenericTypeDefinition() = GetType(List(Of ))
1 голос
/ 05 января 2011

К сожалению, это невозможно.

Вам нужно позвонить GetType() и проверить IsGenericType и GetGenericTypeDefinition.

0 голосов
/ 22 сентября 2015

См. Блог Хансельмана: http://www.hanselman.com/blog/TheVBEquivalentToCTypeofKeyword.aspx

GetType (T) - это так просто :)

...