Estático (Visual Basic)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.Specifies that one or more declared local variables are to continue to exist and retain their latest values after termination of the procedure in which they are declared.

ComentáriosRemarks

Normalmente, uma variável local em um procedimento deixa de existir assim que o procedimento para.Normally, a local variable in a procedure ceases to exist as soon as the procedure stops. Uma variável estática continua existindo e retém seu valor mais recente.A static variable continues to exist and retains its most recent value. Na próxima vez em que o código chamar o procedimento, a variável não será reinicializada e ainda manterá o valor mais recente que você atribuiu a ela.The next time your code calls the procedure, the variable is not reinitialized, and it still holds the latest value that you assigned to it. Uma variável estática continua existindo durante o tempo de vida da classe ou do módulo em que ela está definida.A static variable continues to exist for the lifetime of the class or module that it is defined in.

RegrasRules

  • Contexto de declaração.Declaration Context. Você pode usar Static apenas em variáveis locais.You can use Static only on local variables. Isso significa que o contexto de declaração para uma variável Static deve ser um procedimento ou um bloco em um procedimento, e não pode ser um arquivo de origem, namespace, classe, estrutura ou módulo.This means the declaration context for a Static variable must be a procedure or a block in a procedure, and it cannot be a source file, namespace, class, structure, or module.

    Você não pode usar Static dentro de um procedimento de estrutura.You cannot use Static inside a structure procedure.

  • Os tipos de dados de Static variáveis locais não podem ser inferidos.The data types of Static local variables cannot be inferred. Para obter mais informações, consulte inferência de tipo local.For more information, see Local Type Inference.

  • Modificadores combinados.Combined Modifiers. Não é possível especificar Static junto com ReadOnly, Shadowsou Shared na mesma declaração.You cannot specify Static together with ReadOnly, Shadows, or Shared in the same declaration.

ComportamentoBehavior

Quando você declara uma variável estática em um procedimento Shared, apenas uma cópia da variável estática está disponível para o aplicativo inteiro.When you declare a static variable in a Shared procedure, only one copy of the static variable is available for the whole application. Você chama um procedimento de Shared usando o nome da classe, não uma variável que aponta para uma instância da classe.You call a Shared procedure by using the class name, not a variable that points to an instance of the class.

Quando você declara uma variável estática em um procedimento que não é Shared, apenas uma cópia da variável está disponível para cada instância da classe.When you declare a static variable in a procedure that isn't Shared, only one copy of the variable is available for each instance of the class. Você chama um procedimento não compartilhado usando uma variável que aponta para uma instância específica da classe.You call a non-shared procedure by using a variable that points to a specific instance of the class.

ExemploExample

O exemplo a seguir demonstra o uso de Static.The following example demonstrates the use of Static.

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

A variável de Static totalSales é inicializada como 0 somente uma vez.The Static variable totalSales is initialized to 0 only one time. Cada vez que você inserir updateSales, totalSales ainda terá o valor mais recente que você calculou para ele.Each time that you enter updateSales, totalSales still has the most recent value that you calculated for it.

O modificador de Static pode ser usado neste contexto:The Static modifier can be used in this context:

Instrução DimDim Statement

Consulte tambémSee also