TryCast (Operador) (Visual Basic)

Introduce una operación de conversión de tipos que no produce una excepción.

Comentarios

Si se produce un error al intentar llevar a cabo una conversión, CType y DirectCast producen un error InvalidCastException. Este atributo puede afectar negativamente al rendimiento de la aplicación. TryCast devuelve Nothing (Visual Basic), por lo que en lugar de tener que controlar una posible excepción, solo necesita comprobar el valor devuelto con Nothing.

Utilice la palabra clave TryCast del mismo modo que utiliza las palabras clave CType (Función) (Visual Basic) y DirectCast (Operador) (Visual Basic). Proporcione una expresión como primer argumento y el tipo al que se va a convertir como segundo argumento. TryCast solo funciona en tipos de referencia, como clases e interfaces. Requiere que exista una relación de herencia o implementación entre los dos tipos. Esto significa que un tipo debe heredarse del otro o implementar al otro.

Errores

TryCast genera un error del compilador si detecta que no existe ninguna relación de herencia o implementación. Sin embargo, la ausencia de un compilador no garantiza que la conversión se realice correctamente. Si la conversión deseada es de restricción, puede producirse un error en tiempo de ejecución. Si esto ocurre, TryCast devuelve Nothing (Visual Basic).

Palabras clave para conversiones

A continuación se incluye una comparación de las palabras clave de conversión de tipos.

Palabra clave

Tipos de datos

Relación de argumentos

Error en tiempo de ejecución

CType (Función) (Visual Basic)

Cualquier tipo de datos

La conversión de ampliación o restricción debe definirse entre dos tipos de datos

Produce InvalidCastException

DirectCast (Operador) (Visual Basic)

Cualquier tipo de datos

Un tipo debe heredarse del otro tipo o implementarlo

Produce InvalidCastException

TryCast

Sólo tipos de referencia

Un tipo debe heredarse del otro tipo o implementarlo

Devuelve Nothing (Visual Basic)

Ejemplo

En el ejemplo siguiente se muestra cómo utilizar 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

Vea también

Conceptos

Conversiones de ampliación y de restricción (Visual Basic)

Conversiones implícita y explícita (Visual Basic)