Compartir a través de


Static (Visual Basic)

Especifica que una o varias variables locales declaradas deben seguir existiendo y conservar sus valores más recientes después de la terminación del procedimiento en el que se declaran.

Comentarios

Normalmente, las variables locales de un procedimiento dejan de existir en cuanto se detiene el procedimiento. Una variable estática continúa existiendo y conserva su valor más reciente. La próxima vez que el código llame al procedimiento la variable no se reinicializará y contendrá el valor más reciente que le asignó. Una variable estática sigue existiendo mientras dure la clase o módulo en la que se define.

Reglas

  • Contexto de declaración. Static solo se puede usar en variables locales. Esto significa que el contexto de declaración de una variable Static debe ser un procedimiento o un bloque de un procedimiento, y no puede ser un archivo de origen, un espacio de nombres, una clase, una estructura o un módulo.

    No se puede usar Static dentro de un procedimiento de la estructura.

  • No se pueden deducir los tipos de datos de las variables locales Static. Para más información, consulte Inferencia de tipo de variable local.

  • Modificadores combinados. No es posible especificar Static junto con ReadOnly, Shadows o Shared en la misma declaración.

Comportamiento

Cuando se declara una variable estática en un procedimiento Shared, solo hay una copia de la variable estática disponible para toda la aplicación. Se llama a un procedimiento Shared mediante el nombre de clase, no una variable que apunta a una instancia de la clase.

Cuando se declara una variable estática en un procedimiento que no es Shared, solo hay una copia de la variable disponible para cada instancia de la clase. Se llama a un procedimiento no compartido mediante una variable que apunta a una instancia concreta de la clase.

Ejemplo

El siguiente ejemplo muestra el uso de Static.

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

La Static variable totalSales se inicializa en 0 solo una vez. Cada vez que se escribe updateSales, totalSales tiene el valor más reciente que se calculó para él.

El modificador Static se puede utilizar en este contexto:

Instrucción Dim

Consulte también