Compartilhar via


Operador TryCast (Visual Basic)

Apresenta uma operação de conversão de tipo que não gera uma exceção.

Comentários

Se uma tentativa de conversão falhar, CType e DirectCast ambos lançam uma InvalidCastException erro. Isso pode afetar o desempenho do seu aplicativo. TryCastRetorna Nada (Visual Basic), de modo que, em vez de lidar com uma possível exceção, você só precisa testar o resultado retornado contra Nothing.

Você usa a palavra-chaveTryCastda mesma maneira que usa as palavras-chave Função CType (Visual Basic) e a Operador DirectCast (Visual Basic). Você fornecer uma expressão, como o primeiro argumento e um tipo para convertê-lo para como o segundo argumento. TryCastopera somente em tipos de referência, como, por exemplo, classes e interfaces. Ele requer uma relação entre os dois tipos de herança ou implementação. Isso significa que um tipo deve herdar de ou implementar o outro.

Erros e falhas

TryCast gera um erro do compilador se ele detectar que nenhuma relação de herança ou implementação existe. Mas a falta de um erro do compilador não garante uma conversão bem-sucedida. Se a conversão desejada é de restrição, ele pode falhar em tempo de execução. Se isso acontecer, TryCast retorna Nada (Visual Basic).

Palavras-chave conversão

Uma comparação entre as palavras-chave conversão de tipos é a seguinte:

Keyword

Tipos de dados

Relacionamento de argumento

Falha em tempo de execução

Função CType (Visual Basic)

Quaisquer tipos de dados

Expandir ou restringir a conversão deve ser definido entre os dois tipos de dados.

Gera InvalidCastException

Operador DirectCast (Visual Basic)

Quaisquer tipos de dados

Um tipo deve herdar de ou implementar o outro tipo

Gera InvalidCastException

TryCast

Somente tipos de referência

Um tipo deve herdar de ou implementar o outro tipo

Retorna Nada (Visual Basic)

Exemplo

O exemplo a seguir mostra como 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

Consulte também

Conceitos

Conversões de Widening e Narrowing (Visual Basic)

Conversões implícitas e explícitas (Visual Basic)