Static (Visual Basic)
Especifica que una o varias variables locales declaradas seguirán existiendo y conservarán sus valores más recientes después de finalizar el procedimiento en el que se declaran.
Comentarios
Normalmente, una variable local de un procedimiento deja de existir en cuanto se detiene el procedimiento. Una variable estática sigue existiendo y conserva su valor más reciente. La próxima vez que el código llame al procedimiento, la variable no se reinicializa y todavía contiene el valor más reciente que le asignó. Una variable estática sigue existiendo durante la vigencia de la clase o módulo en el que se define.
Reglas
Contexto de declaración. Solo puede usar
Staticen variables locales. Esto significa que el contexto de declaración de una variable debe ser un procedimiento o un bloque de un procedimiento, y no puede ser un archivo de código fuente, un espacio deStaticnombres, una clase, una estructura o un módulo.No se puede usar
Staticdentro de un procedimiento de estructura.No se pueden
Staticinferir los tipos de datos de variables locales. Para obtener más información, vea Inferencia de tipo local.Modificadores combinados. No se puede
Staticespecificar junto con , o en la mismaReadOnlyShadowsShareddeclaración.
Comportamiento
Cuando se declara una variable estática en un procedimiento, solo hay una copia Shared de la variable estática disponible para toda la aplicación. Se llama a Shared un procedimiento 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 , solo hay una copia de la Shared variable disponible para cada instancia de la clase . Se llama a un procedimiento no compartido mediante una variable que apunta a una instancia específica 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 se inicializa en totalSales 0 solo una vez. Cada vez que escriba updateSales , todavía tiene el valor más reciente que totalSales calculó para él.
El Static modificador se puede usar en este contexto: