Período de duración en Visual Basic

Actualización: noviembre 2007

El período de duración de un elemento declarado es el tiempo durante el cual está disponible para el uso. Las variables son los únicos elementos que tienen un período de duración. Para este propósito, el compilador trata los parámetros de procedimiento y la función vuelve como un caso especial de variable. El período de duración de una variable representa el tiempo durante el cual puede contener un valor. Su valor puede variar en su período de duración, pero siempre contiene un valor.

Períodos de duración diferentes

Una variable miembro (declarada en el nivel de módulo, fuera de cualquier procedimiento) tiene el mismo período de duración normalmente que el elemento en el que se declara. Una variable no compartida declarada en una clase o estructura existe como copia separada para cada instancia de la clase o estructura en la que se declara. Este tipo de variable tiene el mismo período de duración que su instancia. No obstante, una variable Shared sólo tiene un período de duración, que es el tiempo completo de ejecución de la aplicación.

Una variable local (declarada dentro de un procedimiento) sólo existe mientras el procedimiento en el que se declara está en ejecución. Esto también es aplicable a los parámetros del procedimiento y a cualquier valor devuelto de función. No obstante, si el procedimiento llama a otros procedimientos, las variables locales conservan su valor durante la ejecución de los últimos.

Comienzo del período de duración

El período de duración de una variable local empieza con el control del procedimiento en el que se declara. Las variables locales se inicializan con el valor predeterminado de su tipo de datos en el momento en que empieza la ejecución del procedimiento. Cuando el procedimiento encuentra una instrucción Dim que especifica valores iniciales, establece esos valores para las variables aunque el código ya les haya asignado otros valores.

Los miembros de una variable de estructura se inicializan como si cada uno fuera una variable independiente. De forma similar, los elementos de una variable de matriz se inicializan de manera individual.

Las variables declaradas dentro de un bloque en el interior de un procedimiento (como un bucle For ) se inicializan en la entrada al procedimiento. Estas inicializaciones tienen efecto independientemente de si el código ejecuta o no el bloque.

Final del período de duración

Cuando un procedimiento finaliza, no se conservan los valores de sus variables locales y Visual Basic recupera su memoria. La próxima vez que llame al procedimiento, se crean de nuevo y se reinicializan todas las variables locales.

Cuando finaliza una instancia de una clase o estructura, se pierde el valor y la memoria de sus variables no compartidas. Cada nueva instancia de la clase o estructura crea y reinicializa sus variables no compartidas. No obstante, las variables Shared se conservan hasta que finaliza la ejecución de la aplicación.

Prolongar el período de duración

Si declara una variable local con la palabra clave Static, su período de duración es más largo que el tiempo de ejecución de su procedimiento. La tabla siguiente muestra cómo determina la declaración de procedimiento el tiempo de duración de una variable Static.

Ubicación de procedimiento y uso compartido

Comienza el período de duración de una variable estática

Finaliza el período de duración de una variable estática

En un módulo (compartido de manera predeterminada)

La primera vez que se llama al procedimiento.

Cuando se detiene la aplicación

En una clase o estructura, Shared (el procedimiento no es un miembro de instancia)

La primera vez que se llama al procedimiento en una instancia específica, o en el mismo nombre de clase o estructura

Cuando se detiene la aplicación

En una instancia de clase o estructura, no Shared (el procedimiento es un miembro de instancia)

La primera vez que se llama al procedimiento en la instancia específica

Cuando la instancia se libera para la recolección de elementos no utilizados

Vea también

Tareas

Cómo: Prolongar la duración de una variable

Solucionar problemas de tipos de datos

Conceptos

Nombres de elementos declarados

Ámbito en Visual Basic

Niveles de acceso en Visual Basic

Variables en Visual Basic

Declaración de variable en Visual Basic

Referencia

Shared (Visual Basic)

Nothing (Visual Basic)

Static (Visual Basic)

Otros recursos

Referencias a elementos declarados