Alcance de variables en Visual Basic 6

Post date: Aug 27, 2010 4:07:26 AM

Hay dos atributos clave de todas las variables en Visual Basic 6 que son esenciales para comprender su uso:

  • El alcance, que define la visibilidad de una variable. Las variables pueden tener un alcance global, que permite acceder a la variable desde todas partes o un alcance local a un sólo procedimiento.

  • La Duración, que define la vida útil de una variable. Las variables pueden existir por toda la duración de la ejecución de una aplicación o se pueden crear y destruir en una sola llamada de procedimiento.

Alcance de variables

El alcance de una variable determina donde se puede acceder a ella en el código. Dentro del alcance de una variable, su valor puede leerse o establecerse. Si está fuera de su alcance no será capaz de acceder a ella.

Hay tres tipos de alcance de variables en Visual Basic 6:

  • Alcance global: Las variables globales están dentro de su ámbito de uso en cualquier parte del programa.

  • Alcance de módulo: Las variables a nivel de módulo pueden ser usadas en cualquier lugar dentro del módulo donde fueron declaradas.

  • Alcance local: Las variables locales sólo están en su alcance dentro de un procedimiento siempre que sean declaradas.

Variantes

Hay algunas variaciones de las normas básicas de alcance:

  • Las variables públicas en módulos de clase. A diferencia de las variables públicas en los módulos estándar, las variables públicas en módulos de clase sólo son alcanzables cuando una variable de objeto que representa la clase es también alcanzable. Por ejemplo, se puede tener una clase CPersona con una variable pública Nombre. CPersona:Nombre es pública, pero sólo está disponible si hay una variable de objeto de la clase CPersona actualmente en su alcance. No es posible declarar la variable en el módulo de clase y luego hacer referencia a ella sin crear primero un objeto CPersona.

  • Las variables públicas en módulos de formulario. Aunque los formularios pueden considerarse como derivados de las clases, Visual Basic trata los formularios de manera diferente. A diferencia de una clase, no están obligados a declarar las variables objeto de formulario (si bien se considera una buena práctica de programación el hacerlo). Si hace referencia a una variable pública en un formulario desde cualquier parte del código, una copia del formulario Visual Basic crea automáticamente una copia, lo que puede conducir a efectos no deseados si no se está consciente de ello.

  • Variables en la sombra. Si las variables con el mismo nombre se declaran de manera que más de una de ellas sea alcanzable en un mísmo ámbito cuando se hace referencia a la variable, la copia más local se utiliza. Por ejemplo, si declara una variable denominada sNonmbre en un procedimiento, y también se tiene una variable sNombre declarada como privada en la sección de declaraciones del mismo módulo, así como una variable sNombre global declarada en otro módulo, las siguientes reglas se aplican:

    • Dentro del procedimiento donde se declara sNombre, la copia local de sNombre es la que se utiliza.

    • en cualquier otra parte del módulo con la variable sNombre privada sería la variable declarada a nivel de módulo la que estaría en uso.

    • en el código de otros módulos se utiliza la variable sNombre global.

Este problema de variables sombreadas puede ser evitado fácilmente utilizando una convención de nomenclatura que agregue un prefijo que indique el alcance de una variable. Una convención común es anteponer a las variables de nivel de módulo una "m" y las variables globales con "g". Las variables locales no reciben prefijo que indique su alcance.

Duración de las variables

El tiempo de vida de una variable permite saber hasta cuando una variable está disponible durante la ejecución de un programa. Una variable puede tener una duración limitada por el tiempo de ejecución de una llamada de procedimiento. Otras variables pueden durar desde su creación hasta el final de la ejecución del programa.

Normalmente, todas las variables declaradas a nivel de un módulo tendrán la duración de la vida de una aplicación y las variables declaradas dentro de un procedimiento sólo existen mientras que el procedimiento se está ejecutando. Hay, sin embargo, algunas excepciones a esta regla general.

  • Las variables estáticas. Las variables estáticas conservan sus valores entre llamadas a procedimientos. Un uso común de variables estáticas es como indicadores de control para evitar la recursión ilimitada, indicadores de control para la configuración de una propiedad que solo se escribe una vez, etc.

  • Módulos de clase. Las variables declaradas a nivel de módulo de clase existen durante toda la vida útil de los objetos de clase.

  • Módulos de formulario. Las variables declaradas en los módulos de formulario existen desde que se crea la instancia del formulario. Sin embargo, VB trata módulos de forma algo particular y creará automáticamente una instancia de un formulario en lo que se hace referencia a alguna de sus propiedades.

Enlaces relacionados

Cursos relacionados