Gustavo Desenv Wiki

 

BoaPraticaVB6

Page history last edited by gustavohe@... 4 yrs ago

Instanciando Objetos

 

 

Cuidado ao instanciar variáveis assim:

 

dim DB as new ADODB.Connection

 

Nesse caso a primeira vez que for acessada o objeto será carregado automaticamente. Caso você o destrua com set DB = Nothing , na próxima vez que você tentar usar-lo o objeto será carregado novamente, isso pode por algum acidente deixar lixo na memória.

 

Na maioria dos casos é mais recomendado usar o seguinte modelo:

 

dim DB as ADODB.Connection

set DB = new ADODB.Connection

 

Nesse caso o objeto será carregado quando você executar o comando 'set'. No caso do objeto ser destruído por set DB = Nothing , se você tiver que acessa-lo novamente terá que carrega-lo novamente set DB = new ADODB.Connection senão um erro em tempo de execução ocorrerá.

 

 

Testes Condicional / IF

 

Cuidado nos testes, a diferença é pequena mas usar o modelo seguinte é mais lento porque o VB vai acessar a variável 'a' e 'b' mesmo que a variável a não tenha sido verdadeira (vb é burro):

 

if a = 2 and b =3 then

....

end if

 

Para evitar esse problema utilize a seguinte forma:

 

if a = 2 then

if b =3 then

....

end if

end if

 

A variável 'b' só vair ser acessada caso a primeira condição seja verdadeira.

 

Booleans

 

Cuidado:

Utilizar o modelo abaixo é mais lento:

 

if bolValor = false then

...

endif

 

 

Sempre utilize o seguinte modelo:

 

if not bolValor then

...

end if

if bolValor then

...

end if

 

 

IIF

 

É ótimo usar o IIf mas cuidado, ele pode ser mais de 300% mais lento doque usar a segunte sintaxe:

 

Sem IIf

 

if Variavel = "a" then

Variavel = "b"

else

Variavel = "a"

end if

'158 ms

 

O código fica maior, mas o desempeho também, vale a pena avaliar essa opção em rotinas que estão dentro de um loop, por exemplo.

 

 

Com IIf

 

Variavel = IIf(Variavel = "a", "b", "a")

'515 ms

 

 

Modulos e Classes

 

O Módulo é carregado na memória quando o programa inicia.

O Módulo não pode ser destruído.

 

A Classe é carregada quando você instancia-la.

Depois de usada a classe pode ser destruída utilizando o set x = Nothing.

 

Utilizem módulos somente quando for estritamente necessário utilizar

váriaveis ou subs/functions globais.

 

 

Se alguém não concorda com algo nesse texto ou tem alguma coisa a acrescentar, me mande um email, talvez eu esteja equivocado.

 

gustavohe@gmail.com.br

Comments (0)

You don't have permission to comment on this page.