Static (Instrucción)

Visual Basic VBLR

Static (Instrucción)

       

Se usa en el nivel de procedimiento para declarar variables y asignarles espacio de almacenamiento. Las variables declaradas con la instrucción Static conservan su valor mientras el código se está ejecutando.

Sintaxis

Static nombre_variable[([subíndices])] [As [New] tipo] [, nombre_variable[([subíndices])] [As [New] tipo]] . . .

La sintaxis de la instrucción Static consta de estas partes:

Parte Descripción
nombre_
variable
Requerido. Nombre de la variable; sigue las convenciones estándar de nombres de variable.
subíndices Opcional. Dimensiones de una variable de matriz; se pueden declarar hasta 60 dimensiones múltiples. El argumento subíndices usa la sintaxis siguiente:

[inferior To] superior [,[inferior To] superior] . . .

Cuando no se declara explícitamente en inferior, el límite inferior de una matriz se controla mediante la instrucción Option Base. Este límite inferior es cero si no hay ninguna instrucción Option Base.

New Opcional. Palabra clave que permite la creación implícita de un objeto. Si utiliza New cuando declara la variable de objeto, se crea una nueva instancia del objeto como primera referencia, de forma que no tiene que utilizar la instrucción Set para asignar la referencia del objeto. La palabra clave New no se puede utilizar para declarar variables de cualquier tipo de datos intrínseco ni para declarar instancias de objetos dependientes.
tipo Opcional. Tipo de datos de la variable; puede ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (no admitida actualmente), Date, String, (para cadenas de longitud variable), String * length (para cadenas de longitud fija), Object, Variant, un tipo definido por el usuario, o un tipo de objeto. Use una cláusula As tipo distinto para cada variable que defina.

Comentarios

Una vez que el código del módulo se está ejecutando, las variables declaradas con la instrucción Static conservan su valor hasta que se reinicie o restablezca el módulo. En los módulos de clase, las variables declaradas con la instrucción Static conservan su valor en cada instancia de clase hasta que se destruye la instancia. En módulos de formulario, las variables estáticas conservan su valor hasta que se cierra el formulario. Use la instrucción Static en procedimientos no estáticos para declarar explícitamente variables que son visibles sólo dentro de un procedimiento, pero cuya vida es la misma que la del módulo en la que se definió el procedimiento.

Utilice una instrucción Static dentro de un procedimiento para declarar el tipo de datos de una variable que conserva su valor entre llamadas a procedimiento. Por ejemplo, la instrucción siguiente declara una matriz de enteros de tamaño fijo:

Static NúmeroDeEmpleados(200) As Integer

La siguiente línea declara una variable para una nueva instancia de una hoja de cálculo:

Static X As New Worksheet

Si la palabra clave New no se utiliza al declarar una variable de objeto, la variable que hace referencia a un objeto debe asignarse a un objeto existente mediante la instrucción Set antes de poder utilizarla. Antes de que se le asigne un objeto, la variable de objeto declarada tiene el valor especial Nothing, que indica que no hace referencia a ninguna instancia en particular de un objeto. Cuando utiliza la palabra clave New en la declaración, se crea una instancia del objeto en la primera referencia del mismo.

Si no especifica un tipo de datos o un tipo de objeto y no existe una instrucción Deftipo en el módulo, la variable es Variant de manera predeterminada.

Nota   La instrucción Static y la palabra clave Static son similares, pero se utilizan para conseguir efectos diferentes. Si declara un procedimiento con la palabra clave Static (como en Static Sub ContarVentas()), el espacio de almacenamiento correspondiente a todas las variables locales dentro del procedimiento se asigna una única vez y el valor de las variables se conserva durante todo el tiempo que se esté ejecutando el programa. Para procedimientos no estáticos, el espacio de almacenamiento para las variables se asigna cada vez que se llama al procedimiento y se libera cuando se sale del procedimiento. La instrucción Static se usa para declarar variables específicas dentro de procedimientos no estáticos para conservar su valor mientras el programa se esté ejecutando.

Al inicializar las variables, una variable numérica se inicializa a 0, una cadena de longitud variable se inicializa a una cadena de longitud cero ("") y una cadena de longitud fija se rellena con ceros. Las variables Variant se inicializan a Empty. Cada elemento de una variable de un tipo definido por el usuario se inicializa como si fuera una variable distinta.

Nota   Cuando utilice instrucciones Static dentro de un procedimiento, colóquelas al principio del procedimiento con otras instrucciones de declaración como Dim.