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
Conceitos
Convertendo cadeias de caracteres em tipos de dados do .NET Framework