Compartilhar via


A opção Strict On não permite conversões implícitas de '<type1>' para '<type2>'

Você tentou converter um tipo em outro tipo que pode não ser capaz de conter o valor, como um em um LongInteger, enquanto o comutador de verificação de tipo (Instrução Opção Estrita) está definido como On.

Esse tipo de conversão é chamado de conversão de restrição e é possível que ela falhe em tempo de execução. Por esse motivo, Option Strict On não permite conversões de estreitamento implícitas.

ID do erro: BC30512

Para corrigir este erro

  1. Determine se existe uma conversão de qualquer tipo de <type1> para <type2>. Se ambos forem tipos elementares do Visual Basic ou se ambos forem instâncias de classes, você geralmente poderá fazer essa determinação consultando a tabela em Conversões de Ampliação e Estreitamento.

  2. Se apenas uma conversão de restrição existir de <type1> para <type2>, você deverá usar a conversão explícita. As palavras-chave CType Function e DirectCast Operator geram uma exceção em tempo de execução se a conversão falhar. A palavra-chave Operador TryCast aplica-se somente aos tipos de referência e retorna Nothing se a conversão falhar.

  3. Se houver uma conversão de restrição e seu programa puder tolerar uma falha em tempo de execução ou você estiver confiante de que uma falha em tempo de execução não é possível, você pode especificar Option Strict Off no início do código-fonte. Mas você ainda deve colocar a conversão em um Try... Pegar... Por fim, a instrução bloqueia para evitar resultados inesperados ou término antecipado do seu programa.

  4. Se nenhuma conversão existir de <type1> para <type2>, você deverá reavaliar a lógica do programa. Talvez você possa escrever um código que possa atribuir valores aos <type2> valores correspondentes aos valores previstos de <type1>.

  5. Se nenhuma conversão existir de <type1> para <type2> e um dos tipos for uma classe ou estrutura que você definiu, você poderá definir um operador de conversão desse tipo para ou de outro tipo. Para obter mais informações, consulte Como definir um operador de conversão.

  6. Em todos os casos e como uma diretriz geral, você deve evitar o uso de conversões de restrição, a menos que possa interceptar falhas em um Catch bloco e lidar com elas com eficiência.

Consulte também