Как мы преобразуем объект в определенный тип, если мы знаем тип объекта во время выполнения?

#casting

Вопрос:

 Public Shared Sub Insert(cache1 As T)
    Dim key = cache1.mainKey 'whiy is this error
    _dictionaryOfCache(key) = cache1

    If TypeOf cache1 Is MarketPairInanExchange Then
        Dim cache2 = DirectCast(cache1, MarketPairInanExchange)
        'Do some debugging and use members of MarketPairInanExchange
    End If

End Sub
 

Я хочу сделать что-то вроде этого

Конечно, это не работает, потому что между T и MarketPairInanExchange нет допустимой конверсии

В большинстве случаев его нет. Однако, если я сделал тип и очевидно, что T-это MarketPairInanExchange, то почему бы и нет?

Как мне это сделать?