Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Представляет операцию преобразования типов, которая не создает исключение.
Замечания
Если попытка преобразования завершается ошибкой, CType и DirectCast оба вызывают ошибку InvalidCastException . Это может негативно повлиять на производительность приложения.
TryCastВозвращает значение Nothing, чтобы вместо необходимости обрабатывать возможное исключение, необходимо проверить только возвращенный результат.Nothing
Ключевое TryCast слово используется так же, как оператор CType и ключевое слово оператора DirectCast . Вы предоставляете выражение в качестве первого аргумента и типа, чтобы преобразовать его в качестве второго аргумента.
TryCast работает только в ссылочных типах, таких как классы и интерфейсы. Для этого требуется наследование или связь реализации между двумя типами. Это означает, что один тип должен наследоваться от другого или реализовать другой.
Ошибки и сбои
TryCast Создает ошибку компилятора, если она обнаруживает, что отношения наследования или реализации отсутствуют. Но отсутствие ошибки компилятора не гарантирует успешное преобразование. Если требуемое преобразование сужается, он может завершиться ошибкой во время выполнения. Если это произойдет, TryCast возвращает ничего.
Ключевые слова конверсии
Сравнение ключевых слов преобразования типов выглядит следующим образом.
| Ключевое слово | Типы данных | Связь аргументов | Сбой во время выполнения |
|---|---|---|---|
| Оператор CType | Любые типы данных | Преобразование расширения или сужения должно быть определено между двумя типами данных | Бросает InvalidCastException |
| Оператор DirectCast | Любые типы данных | Один тип должен наследоваться от другого типа или реализовать другой тип | Бросает InvalidCastException |
TryCast |
Только ссылочные типы | Один тип должен наследоваться от другого типа или реализовать другой тип | Возвращает ничего |
Пример
В следующем примере показано, как использовать TryCast.
Function PrintTypeCode(ByVal obj As Object) As String
Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible)
If objAsConvertible Is Nothing Then
Return obj.ToString() & " does not implement IConvertible"
Else
Return "Type code is " & objAsConvertible.GetTypeCode()
End If
End Function