Compartir a través de


Cómo: Controlar el ámbito de una variable (Visual Basic)

Normalmente, una variable está en el ámbito o está visible como referencia en toda la región en la que se declara. En algunos casos, el nivel de acceso de la variable puede influir en su ámbito.

Para obtener más información, vea Ámbito en Visual Basic.

Ámbito en el nivel de bloque o procedimiento

Para que una variable solo sea visible dentro de un bloque

  • Coloque la instrucción Dim para la variable entre las instrucciones que inician y finalizan ese bloque, por ejemplo, entre las instrucciones For y Next de un bucle For.

    Solo puede hacer referencia a la variable desde dentro del bloque .

Para que una variable solo sea visible dentro de un procedimiento

  • Coloque la instrucción Dim para la variable dentro del procedimiento, pero fuera de cualquier bloque (como un bloque With...End With).

    Solo puede hacer referencia a la variable desde dentro del procedimiento, incluido dentro de cualquier bloque contenido en el procedimiento.

Ámbito a nivel de módulo o espacio de nombres

Para mayor comodidad, el nivel de módulo de un solo término se aplica igualmente a módulos, clases y estructuras. El nivel de acceso de una variable de nivel de módulo determina su ámbito. El espacio de nombres que contiene el módulo, la clase o la estructura también influye en el ámbito.

Para que una variable sea visible a lo largo de un módulo, una clase o una estructura

  1. Coloque la Dim instrucción para la variable dentro del módulo, la clase o la estructura, pero fuera de cualquier procedimiento.

  2. Incluya la palabra clave Private en la instrucción de Dim.

  3. Puede hacer referencia a la variable desde cualquier lugar dentro del módulo, la clase o la estructura, pero no desde fuera de ella.

Para que una variable sea visible en todo un espacio de nombres

  1. Coloque la Dim instrucción para la variable dentro del módulo, la clase o la estructura, pero fuera de cualquier procedimiento.

  2. Incluya la palabra clave Friend o Public en la Dim instrucción .

  3. Puede hacer referencia a la variable desde cualquier lugar del espacio de nombres que contiene el módulo, la clase o la estructura.

Ejemplo

En el ejemplo siguiente se declara una variable en el nivel de módulo y se limita su visibilidad al código dentro del módulo.

Module demonstrateScope  
    Private strMsg As String  
    Sub initializePrivateVariable()  
        strMsg = "This variable cannot be used outside this module."  
    End Sub  
    Sub usePrivateVariable()  
        MsgBox(strMsg)  
    End Sub  
End Module  

En el ejemplo anterior, todos los procedimientos definidos en el módulo demonstrateScope pueden hacer referencia a la String variable strMsg. Cuando se llama al usePrivateVariable procedimiento, muestra el contenido de la variable strMsg de cadena en un cuadro de diálogo.

Con la siguiente modificación del ejemplo anterior, la variable de cadena strMsg podrá ser referenciada por código en cualquier parte del espacio de nombres de su declaración.

Public strMsg As String  

Programación sólida

Cuanto menor sea el ámbito de una variable, menos oportunidades tendrá para hacer referencia accidentalmente a ella en lugar de otra variable con el mismo nombre. También puede minimizar los problemas de coincidencia de referencias.

Seguridad de .NET Framework

Cuanto menor sea el ámbito de una variable, menor será la probabilidad de que el código malintencionado pueda hacer uso incorrecto de ella.

Consulte también