Static (Visual Basic)Static (Visual Basic)

Especifica uno o más variables locales declaradas deben seguir existiendo y conservar sus últimos valores tras la finalización del procedimiento en el que se declaran.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.

ComentariosRemarks

Normalmente, una variable local en un procedimiento deja de existir en cuanto se detiene el procedimiento.Normally, a local variable in a procedure ceases to exist as soon as the procedure stops. Una variable estática sigue existiendo y conserva su valor más reciente.A static variable continues to exist and retains its most recent value. La próxima vez que el código llama al procedimiento, no se reinicializa la variable y todavía contiene el valor más reciente que asignó a él.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. Sigue existiendo durante la vigencia de la clase o módulo que está definido en una variable estática.A static variable continues to exist for the lifetime of the class or module that it is defined in.

ReglasRules

  • Contexto de declaración.Declaration Context. Puede usar Static solo en las variables locales.You can use Static only on local variables. Esto significa que el contexto de declaración de un Static variable debe ser un procedimiento o un bloque en un procedimiento y no puede ser el archivo de código fuente, espacio de nombres, clase, estructura o 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.

    No puede usar Static dentro de un procedimiento de estructura.You cannot use Static inside a structure procedure.

  • Los tipos de datos de Static las variables locales no se puede inferir.The data types of Static local variables cannot be inferred. Para obtener más información, consulte Local Type Inference.For more information, see Local Type Inference.

  • Modificadores combinados.Combined Modifiers. No puede especificar Static junto con ReadOnly, Shadows, o Shared en la misma declaración.You cannot specify Static together with ReadOnly, Shadows, or Shared in the same declaration.

ComportamientoBehavior

Cuando se declara una variable estática en un Shared procedimiento, solo una copia de la variable estática está disponible para toda la aplicación.When you declare a static variable in a Shared procedure, only one copy of the static variable is available for the whole application. Se llama a un Shared nombre de este procedimiento mediante el uso de la clase, no una variable que señala a una instancia de la clase.You call a Shared procedure by using the class name, not a variable that points to an instance of the class.

Cuando se declara una variable estática en un procedimiento que no sea Shared, solo una copia de la variable está disponible para cada instancia de la clase.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. Llame a un procedimiento no compartido mediante una variable que señala a una instancia específica de la clase.You call a non-shared procedure by using a variable that points to a specific instance of the class.

EjemploExample

El siguiente ejemplo muestra el 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

El Static variable totalSales se inicializa en 0, solo una vez.The Static variable totalSales is initialized to 0 only one time. Cada vez que escriba updateSales, totalSales sigue teniendo el valor más reciente que se ha calculado para él.Each time that you enter updateSales, totalSales still has the most recent value that you calculated for it.

El Static modificador se puede usar en este contexto:The Static modifier can be used in this context:

Dim (instrucción)Dim Statement

Vea tambiénSee also