Partilhar via


TryCast

Introduz uma operação de conversão de tipo que não lançar uma exceção.

Comentários

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

Você usa a palavra-chaveTryCastda mesma maneira que usa as palavras-chave CType Function e a DirectCast.Forneça uma expressão sistema autônomo primeiro argumento e um tipo para convertê-lo para sistema autônomo o segundo argumento.TryCast funciona somente em tipos de referência, sistema autônomo classes e interfaces. Ele requer uma relação de herança ou implementação entre os dois tipos.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

CType Function

Quaisquer tipos de dados

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

Gera InvalidCastException

DirectCast

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 Ampliadoras e Redutoras

Conversões explícita e implícita