Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Presenta una operación de conversión de tipos que no produce una excepción.
Observaciones
Si se produce un error en una conversión CType intentada y DirectCast se produce un InvalidCastException error. Esto puede afectar negativamente al rendimiento de la aplicación.
TryCast devuelve Nothing, de modo que, en lugar de tener que controlar una posible excepción, solo necesita probar el resultado devuelto en Nothing.
La palabra clave se usa TryCast de la misma manera que usa el operador CType y la palabra clave Operador de DirectCast . Se proporciona una expresión como primer argumento y un tipo para convertirlo como segundo argumento.
TryCast solo funciona en tipos de referencia, como clases e interfaces. Requiere una relación de herencia o implementación entre los dos tipos. Esto significa que un tipo debe heredar de o implementar el otro.
Errores y errores
TryCast genera un error del compilador si detecta que no existe ninguna relación de herencia o implementación. Pero la falta de un error del compilador no garantiza una conversión correcta. Si la conversión deseada está estrechando, podría producir un error en tiempo de ejecución. Si esto sucede, TryCast devuelve Nothing.
Palabras clave de conversión
Una comparación de las palabras clave de conversión de tipos es la siguiente.
| Palabra clave | Tipos de datos | Relación de argumento | Error en tiempo de ejecución |
|---|---|---|---|
| Operador CType | Cualquier tipo de datos | La conversión de ampliación o restricción debe definirse entre los dos tipos de datos. | Lanza InvalidCastException |
| Operador de DirectCast | Cualquier tipo de datos | Un tipo debe heredar de o implementar el otro tipo | Lanza InvalidCastException |
TryCast |
Solo tipos de referencia | Un tipo debe heredar de o implementar el otro tipo | Devuelve Nothing |
Ejemplo
En el ejemplo siguiente se muestra cómo usar 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