Usando Option Explicit , Option Strict e Option Compare

A opção Option Explicit (Opção Explicita) já deve ser uma velha conhecida dos tempos do VB6 ( pelo menos deveria ser ). A opção Option Explicit impede que você use uma variável sem criá-la , evitando com isto muitos erros que podem acontecer quando uma variável nova e vazia é automaticamente criada se você errar o nome de uma variável que já existe.

A opção Option Strict é nova , e foi implementada no VB.NET ; usando a opção Option Strict evitamos os erros em tempo de execução que se originam de conversões automáticas de variáveis. Assim , na conversão de uma variável do tipo Int32 para o tipo Int16 ocorre um estreitamento  que pode ou não dar certo pois podem existir valores que ao serem convertidos para int16 percam a precisão. Se você trabalhar com a opção Option Strict desativada , o VB vai deixar você tentar , se der certo muito bem se não der ....

Vamos a um exemplo :

O código abaixo trabalha com a opção Option Strict desativada :

Option Strict Off

Private Sub Calculo(NumeroMaior as Int32 , NumeroMenor as Int16)

       Dim troca as int32

       troca = NumeroMaior

       NumeroMenor = troca

End Sub

O VB não vai reclamar e não indicará erro neste código seu projeto vai rodar bem até que você tente fazer a  conversão de um número maior que 32.767 , ai sim vai ocorrer um erro na sua aplicação...

Se ativarmos a opção Option Strict o código fica assim :

Option Strict On

Private Sub Calculo(NumeroMaior as Int32 , NumeroMenor as Int16)

       Dim troca as int32

       troca = NumeroMaior

       NumeroMenor = troca

       if NumeroMaior > NumeroMenor.Value then

            MessageBox " Atenção ! Este número não suporta a conversão "

      else

            NumeroMenor = Ctype(troca, Int16)

      endif

End Sub

End Sub

Com a opção Option Strict ativada , a coisa muda de figura. Durante a fase de projeto o VB.NET irá sublinhar o código e será gerado um erro em tempo de compilação. O VB.NET não permite a você usar o código sem fazer a modificação explícita ( manual ) . Você é avisado em tempo e pode ajustar o seu código.

Conselho : Use Option Explicit e Option Strict sempre ativas !

Para ativar estas opções faça o seguinte:

  1. Clique com o botão direito do mouse no seu projeto na janela Solution Explorer
  2. Selecione Properties
  3. Na opção Common Properties selecione a opção Build (veja figura abaixo)
  1.  - Agora Ative as opções conforme figura ao lado

Pronto ! seu projeto já esta imune a erros de conversão forçada e a variáveis que surgem do nada....

Agora vamos falar da opção - Option Compare - ela é usada a nível de arquivo para declarar o método de comparação padrão que será usado quando da comparação de dados string. A sintaxe é :

Option Compare { Binary | Text }      onde:
Binary
Resulta em uma comparação de strings baseada na ordem derivada da representação binária interna dos caracteres.
Text
Resulta em uma comparação de strings baseada na ordenação case-sensitive determinada pela configuração local do sistema.

Para usar Option Compare devemos fazer a declaração antes de qualquer outra instrução. O método de comparação de strings é definido para uma classe , módulo ou estrutura . O valor padrão para a comparação de textos é o valor Binary.

Lembre-se que no Windows a ordem da ordenação é determinada pela página de código. A seguir vemos um exemplo que usa Option Compare Binary , o que produz uma ordenação binária.

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Quando os mesmos caracteres são ordenados usando - Option Compare Text , a seguinte ordem é produzida:

(A=a) < ( À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)

Para encerrar vejamos um exemplo que usa Option Compare para definir o método padrão de comparação de strings.

' Define o método de comparação de strings para  Binary.
Option Compare Binary                '  "AAA" é menor que "aaa".
' Define o método de comparação de strings para  Text
Option Compare Text                   '  "AAA" é igual a to "aaa".

até a próxima...


José Carlos Macoratti