Static (Visual Basic)

Especifica si una o varias variables locales declaradas deben seguir existiendo y conservar sus últimos valores tras la finalización del procedimiento en el que se han declarado.

Comentarios

Normalmente, una variable local de un procedimiento deja de existir en cuanto finaliza el procedimiento. Una variable estática sigue existiendo y conserva su valor más reciente. La próxima vez que su código llame al procedimiento, no se reinicializa la variable y sigue conservando el último valor asignado. Una variable estática sigue existiendo mientras dure la clase o módulo en donde está definida.

Reglas

  • Contexto de la declaración. Sólo se puede utilizar Static en variables locales. Esto significa que el contexto de la declaración para una variable Static debe ser un procedimiento o un bloque en un procedimiento y no puede ser un archivo de código fuente, un espacio de nombres, una clase, una estructura o un módulo.

    No puede utilizar Static dentro de un procedimiento de estructura.

  • No se pueden deducir los tipos de datos de las variables locales Static. Para obtener más información, vea Inferencia de tipo de variable local (Visual Basic).

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

Comportamiento

Cuando se declara una variable estática en un procedimiento de Shared , sólo una copia de la variable estática está disponible para toda la aplicación. Se llama a un procedimiento de Shared utilizando 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, sólo 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

El valor totalSales de la variable Static únicamente se inicializa en 0 una vez. Cada vez que se escribe updateSales, totalSales sigue teniendo el valor calculado más reciente.

El modificador Static se puede utilizar en este contexto:

Instrucción Dim (Visual Basic)

Vea también

Referencia

Shadows (Visual Basic)

Shared (Visual Basic)

Conceptos

Período de duración en Visual Basic

Declaración de variable en Visual Basic

Inferencia de tipo de variable local (Visual Basic)

Otros recursos

Estructuras (Visual Basic)

Objetos y clases de Visual Basic