Compartilhar via


Static (Visual Basic)

Especifica que uma ou mais variáveis locais declaradas devem continuar a existir e manter seus valores mais recentes após o término do procedimento no qual elas são declaradas.

Comentários

Normalmente, uma variável local em um procedimento deixa de existir assim que o procedimento para.Uma variável estática continua a existir e mantém seu valor mais recente.Na próxima vez em que seu código chamar o procedimento, a variável não será reinicializada, e ele ainda conterá o valor mais recente que você atribuiu a ela.Uma variável estática continua a existir durante o tempo de vida da classe ou do módulo no qual ela está definida.

Regras

  • Contexto da Declaração. Você pode usar Static somente nas variáveis locais.Isso significa que o contexto da declaração para uma variável Static deve ser um procedimento ou um bloco em um procedimento, e ele não pode ser um arquivo de origem, namespace, classe, estrutura ou módulo.

    Não é possível usar Static dentro de um procedimento de estrutura.

  • Os tipos de dados de variáveis locais Static não podem ser inferidos.Para obter mais informações, consulte Inferência de tipos local.

  • Modificadores Combinados. Você não pode especificarStaticjunto com ReadOnly,Shadows ou Shared na mesma declaração.

Comportamento

O comportamento de qualquer variável local depende se ela é declarada em um procedimento Shared.Se o procedimento for Shared, todas as suas variáveis locais são compartilhadas automaticamente.Isso inclui as variáveis Static.Há apenas uma cópia de tal variável para o aplicativo inteiro.Você chama um procedimento Shared usando o nome da classe, não uma variável que aponta para uma instância da classe.

Se o procedimento não for Shared, suas variáveis locais são variáveis de instância.Isso inclui as variáveis Static.Há uma cópia independente de cada variável em cada instância da classe.Você chama um procedimento não compartilhado usando uma variável que aponta para uma instância específica da classe.Qualquer variável nessa instância é independente de uma variável com o mesmo nome em outra instância.Portanto, elas podem conter valores diferentes.

Exemplo

O exemplo a seguir demonstra o uso de Static.

Function updateSales(ByVal thisSale As Decimal) As Decimal
    Static totalSales As Decimal = 0
    totalSales += thisSale
    Return totalSales
End Function

A variável StatictotalSales foi inicializada para 0 somente uma vez.Cada vez que você inserir updateSales,totalSales ainda tem o valor mais recente que você calculou para ela.

O modificador Static pode ser utilizado neste contexto:

Instrução Dim (Visual Basic)

Consulte também

Conceitos

Tempo de vida no Visual Basic

Declaração de variável no Visual Basic

Inferência de tipos local

Referência

Sombras

Compartilhamento (Visual Basic)

Outros recursos

Estruturas: suas próprias tipos de dados

Noções básicas sobre classes