Partilhar via


Operador de 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 de 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 de 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

Ampliação e restrição de conversões (Visual Basic)

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