Como: Aumentar o tempo de vida da variável
Normalmente, uma variável deixa de existir quando o elemento de programação no qual ela é declarada deixa de existir.Entretanto, você pode tornar sua vida útil maior que a do elemento que a contém ao declará-la com a palavra-chave Static (Visual Basic).
Para obter mais informações, consulte Tempo de vida no Visual Basic.
Para fazer uma variável durar mais que o elemento que a contém
Se a variável é uma variável local (declarada dentro de um procedimento), inclua a palavra-chave Static na caixa Instrução Dim (Visual Basic) que a declara.Uma variável estática existe enquanto existir a classe ou módulo que contém o procedimento que declara a variável.
Se um variável local estiver dentro de um procedimento Compartilhamento (Visual Basic), o procedimento e suas variáveis existem enquanto o aplicativo for executado.Não use Static nesse caso.
Se a variável é uma variável de membro (declarada em uma classe ou estrutura, fora de qualquer procedimento), inclua a palavra-chave Shared na instrução Dim que a declara.Uma variável compartilhada não é associada a qualquer instância de sua classe ou estrutura, e existe enquanto o aplicativo for executado.Você não pode usar Static em um variável de membro.
Se um variável de membro é declarada em um módulo, ela sempre existe, enquanto o aplicativo for executado.Não use Shared nesse caso.
Exemplo
O exemplo a seguir declara uma variável com a palavra-chave Static (Visual Basic).(Observe que você não precisa da palavra-chave Dim quando o Instrução Dim (Visual Basic) usa um modificador, como Static.)
Function runningTotal(ByVal num As Integer) As Integer
Static applesSold As Integer
applesSold = applesSold + num
Return applesSold
End Function
No exemplo anterior, a variável applesSold continua a existir depois que o procedimento runningTotal retorna para o código de chamada.Na próxima vez em que runningTotal é chamado, applesSold manterá seu valor calculado anteriormente.
Se applesSold tivesse sido declarada sem usar Static, os valores acumulados anteriormente não poderiam ser preservados entre chamadas para runningTotal.Na próxima vez em que runningTotal fosse chamado applesSold teria sido recriada e inicializada com 0, e runningTotal teria simplesmente retornado o mesmo valor com o qual ele foi chamado.
Compilando o código
Você pode inicializar o valor de uma variável local estática como parte da sua declaração.Se você declarar uma matriz para ser Static, você pode inicializar sua ordem (número de dimensões), o tamanho de cada dimensão e os valores dos elementos individuais.
Variáveis estáticas de mesmo nome
Você pode declarar variáveis estáticas com o mesmo nome em mais de um procedimento.Se você fizer isso, o compilador Visual Basic considera cada variável como um elemento separado.A inicialização de um dessas variáveis não afeta os valores das outras.O mesmo se aplica se você definir um procedimento com um conjunto de sobrecargas e declarar uma variável estática com o mesmo nome em cada sobrecarga.
Elementos Continentes para Variáveis Estáticas
Você pode declarar uma variável local estática em uma classe, isto é, em um procedimento dessa classe.No entanto, você não pode declarar uma variável local estática em uma estrutura, nem como um membro de estrutura nem como um variável local de um procedimento dentro dessa estrutura.
Segurança
No exemplo anterior, você pode produzir o mesmo tempo de vida, declarando applesSold em nível de módulo.Se você tivesse alterado o escopo de uma variável dessa maneira, no entanto, o procedimento não teria mais acesso exclusivo a ele.Como outros procedimentos poderiam acessar applesSold e alterar seu valor, o total em execução poderia ser não confiável e o código poderia ser mais difícil manter.
Consulte também
Conceitos
Características do elemento declarado
Níveis de acesso em Visual Basic