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 |
---|---|---|---|
Quaisquer tipos de dados |
Expandir ou restringir a conversão deve ser definido entre os dois tipos de dados. |
Gera InvalidCastException |
|
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