Compartilhar via


Exceções de solução de problemas: System.InvalidCastException

Uma exceção InvalidCastException é gerada quando ocorre uma falha durante uma conversão de referência explícita. As conversões de referência são conversões de um tipo de referência para outro. Embora elas possam alterar o tipo da referência, nunca alteram o tipo ou o valor de destino da conversão. Os objetos de conversão de um tipo para outro é uma causa frequente dessa exceção.

Dicas relacionadas

  • Verifique os tipos de origem em relação aos tipos de destino para verificar se a conversão é válida.
    Para obter informações sobre as conversões com suporte pelo sistema, consulte Convert.

Comentários

Para que uma conversão de referência explícita seja bem-sucedida, o valor de origem deverá ser nulo (Nothing no Visual Basic) ou o tipo de objeto referenciado pelo argumento de origem deve ser convertido no tipo de destino por uma conversão de referência implícita.

Quando um aplicativo do Visual Basic 6.0 com uma chamada para um evento personalizado em um controle de usuário é atualizado para uma versão mais nova do Visual Basic e executada, essa exceção pode ocorrer com as informações adicionais, “Conversão especificada não é válida”. Para resolver esse erro, localize a seguinte linha de código em Form1:

Call UserControl11_MyCustomEvent(UserControl11, New UserControl1.MyCustomEventEventArgs(5))

E substitua-a por:

Call UserControl11_MyCustomEvent(UserControl11(0), New UserControl1.MyCustomEventEventArgs(5))

Consulte também

Tarefas

Como usar o Assistente de Exceção

Como converter um objeto em outro tipo no Visual Basic

Como implementar conversões definidas pelo usuário entre structs (Guia de Programação em C#)

Referência

InvalidCastException

Conceitos

Convertendo cadeias de caracteres em tipos de dados do .NET Framework