Partilhar via


Declaração Implícita e Explícita

Por padrão, o compilador Visual Basic aplica declaração explícita, o que requer que você declare todas as variáveis antes de usá-las.Você pode remover esta exigência e permitir declaração implícita.

Visual Basic fornece um interruptor que controla declaração explícita.Por padrão, este interruptor está configurado na posição On, e o compilador aplica declaração explícita.Se você mudar a posição do interruptor para Off, você usa variáveis sem declará-las.

Interruptor de Declaração Explícita. Você pode configurar o interruptor de declaração explícita nas posições On ou Off em qualquer dos seguintes modos:

  • Configure a propriedade de projeto apropriada no ambiente de desenvolvimento integrado (IDE).Clique em Propriedades do <NomeProjeto> a partir do menu Projeto e então clique na lingueta Compilar.Você pode configurar valores padrão para Opção explícita, Opção rígida e Opção compare.

  • Especifique a opção /optionexplicit de linha de comando de compilador.

  • Inclua o Opção Explicit demonstrativo (Visual Basic) no início do seu código.

If you use the OptionExplicit statement, that setting overrides both the project property and compiler option settings, but only for the source code file in which it appears.

Vantagem de Desempenho. Setting OptionExplicit to On has the advantage of forcing type inference to be made at compile time instead of run time.Isso melhora o desempenho.

Declaração Implícita

If you set OptionExplicit to Off, you can implicitly declare a variable by simply using it in your code.O compilador designa o Tipo de dados Object para todas as variáveis declaradas implicitamente.Entretanto, seu aplicativo é mais eficiente se você declarar todas as suas variáveis explicitamente com um tipo de dados específico.Isto reduz a incidência de erros de conflito de nomes e erros de ortografia.Isto também deixa o compilador detectar potenciais erros de tempo de execução como designar um Integer para um Short.

Erros Potenciais

Variáveis Novas não Planejadas

Você pode escrever um procedimento no qual você não declara uma variável local.O exemplo a seguir ilustra isto:

Function safeSqrt(num)
' Make sure num is positive for square root.
    tempVal = Math.Abs(num)
    Return Math.Sqrt(tempVal)
End Function

Visual Basic cria automaticamente tempVal como uma variável local, a qual você pode usar como se você a tivesse declarado explicitamente.Quando isso é conveniente, pode levar a erros sutis no seu código se você grafar um nome de variável incorretamente.Suponha que você tivesse escrito o procedimento no exemplo precedente como se segue:

Function safeSqrt(num)
' Make sure num is positive for square root.
    tempVal = Math.Abs(num)
    Return Math.Sqrt(temVal)
End Function

À primeira vista, este código parece ser o mesmo.Mas devido ao fato de que a variável tempVal está grafada incorretamenteccomo o argumento para Sqrt, o compilador cria uma variável local denominada temVal, a qual nunca é designado um valor, e sua função sempre retorna zero.

Referência de Elemento Existente não Planejado

Quando Visual Basic encontra um nome novo, ele não pode determinar se você desejava declarar uma nova variável impliciamente ou se você grafou nicorretamente um nome de variável existente.Por isso, ele tenta criar uma nova variável com aquele nome.Deve haver uma variável ou elemento de programação já definido com aquele nome, e seu código usaria aquela definição não intencionalmente.

Você pode evitar problemas com variáveis nomeadas incorretamente usando declaração explícita.

Declaração Explícita

Se declaração explícita tivesse estado em efeito para o arquivo-fonte contendo o procedimento safeSqrt no exemplo anterior, Visual Basic teria reconhecido tempVal e temVal como variáveis não declaradas e gerou erros para ambas.Como resultado, você então declararia explicitamente tempVal.O exemplo a seguir ilustra isto:

Function safeSqrt(ByVal num As Double) As Double
' Make sure num is positive for square root.
    Dim tempVal As Double = Math.Abs(num)
    Return Math.Sqrt(temVal)
End Function

Com este código revisado, você entenderia o problema imediatamente porque Visual Basic exibiria uma mensagem de erro para o temVal grafado incorretamente.Devido ao fato de que declarações explícitas te ajudam a identificar esses tipos de erros, é recomendado que você as use em todo o seu código.

Observação:

O OptionExplicit demonstrativo opera em arquivo por arquivo. Deve estar no início de todo código-fonte no qual você deseja controlar a aplicação da declaração de variável explícita.

Consulte também

Tarefas

Como: Modificar propriedades do projeto e definições de configuração

Conceitos

Programação Sem-Tipos no Visual Basic

Verificação de Tipo no Visual Basic

Objeto como o Tipo de Dados Universal

Uso eficiente de tipos de dados

Variáveis no Visual Basic

Convenções de nomeação do Visual Basic

Referência

Resumo de tipo de dados (Visual Basic)

Funções de conversão de tipo