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 variableStatic
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 conReadOnly
,Shadows
oShared
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: