Compartilhar via


Static (Visual Basic)

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ários

Normally, a local variable in a procedure ceases to exist as soon as the procedure stops. A static variable continues to exist and retains its most recent value. 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. A static variable continues to exist for the lifetime of the class or module that it is defined in.

Rules

  • Declaration Context. Você pode usar Static somente em variáveis locais. 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.

    You cannot use Static inside a structure procedure.

  • The data types of Static local variables cannot be inferred. For more information, see Inferência de tipo de variável local (Visual Basic).

  • Combined Modifiers. Não é possível especificar Static em conjunto com ReadOnly, Shadows, ou Shared na mesma declaração.

Behavior

The behavior of any local variable depends on whether it is declared in a Shared procedure. If the procedure is Shared, all its local variables are automatically shared. This includes the Static variables. There is only one copy of such a variable for the whole application. You call a Shared procedure using the class name, not a variable pointing to an instance of the class.

If the procedure is not Shared, its local variables are instance variables. This includes the Static variables. There is an independent copy of each variable in each instance of the class. You call a nonshared procedure using a variable pointing to a specific instance of the class. Any variable in that instance is independent of a variable with the same name in another instance. Therefore, they can hold different values.

Exemplo

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

The Static variable totalSales is initialized to 0 only one time. Each time that you enter updateSales, totalSales still has the most recent value that you calculated for it.

The Static modifier can be used in this context:

Instrução Dim (Visual Basic)

Consulte também

Referência

Shadows (Visual Basic)

Compartilhamento (Visual Basic)

Conceitos

Tempo de vida no Visual Basic

Declaração de variável no Visual Basic

Inferência de tipo de variável local (Visual Basic)

Outros recursos

Estruturas (Visual Basic)

Objetos e Classes no Visual Basic