Duda Sobre Variables

30/07/2003 - 11:56 por Oscar M | Informe spam
Hola a todos,

tengo la siguiente duda sobre como maneja VB 6.0 las variables.

Cuando creo una variable local dentro de una funcion (function) o procedimiento
(sub) a través de la sentencia:

Dim i as integer

esta variable se crea solo cuando se ejecuta esa función o procedimiento?
se pueden definir variables con el mismo nombre pero en funciones diferentes sin
que entren en conflicto?
es mejor esta forma (asi puedo copiar y pegar las funciones enteres de unos
formularios a otros) o es preferible crear una variable dentro del formulario y
utilizarla en todas las funciones?

un saludo a todos.


Óscar.

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
30/07/2003 - 12:06 | Informe spam
Efectivamente, las variables declaradas a nivel de procedimiento (rutina «Sub »o función «Function»)
son locales a dicho procedimiento (podríamos entenderlas como "privadas" a dicha rutina o función) y
no entran en conflicto con variables del mismo nombre de otros procedimientos; según MSDN

[...] Las variables que se declaran en un procedimiento mediante la instrucción Dim sólo existen
mientras se ejecuta el procedimiento. Cuando termina el procedimiento, desaparece el valor de la
variable. Además, el valor de una variable de un procedimiento es local de dicho procedimiento; es
decir, no puede tener acceso a una variable de un procedimiento desde otro procedimiento. Estas
características le permiten usar los mismos nombres de variables en distintos procedimientos sin
preocuparse por posibles conflictos o modificaciones accidentales

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic

(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro
Respuesta Responder a este mensaje
#2 Softjaen
30/07/2003 - 12:21 | Informe spam
"Oscar M" escribió:

Cuando creo una variable local dentro de una funcion
(function) o procedimiento (sub) a través de la sentencia:

Dim i as integer

esta variable se crea solo cuando se ejecuta esa función
o procedimiento?



Hola, Oscar:

¡Así es! Es una variable de ámbito local al procedimiento
o función donde se haya declarado, y se crea sólo cuando
se ejecuta la función o procedimiento, destruyéndose
cuándo éste termine, salvo que la variable la hayas
declarado como «Static i As Integer» y entonces su valor
permanecerá visible tantas veces llames al procedimiento o
función.

se pueden definir variables con el mismo nombre pero en
funciones diferentes sin que entren en conflicto?



Sí. Puedes declarar las variables que desees, con el mismo
nombre, en varias funciones y procedimientos, porque
mientras sean de ámbito local, no entrarán en conflicto

es mejor esta forma (asi puedo copiar y pegar las
funciones enteres de unos formularios a otros) o es
preferible crear una variable dentro del formulario y
utilizarla en todas las funciones?



En cuanto a rendimiento, se recomienda declarar las
variable de ámbito local al procedimiento, en lugar de
declararla en la sección «Declaraciones» del formulario,
ya que de ésta forma, la variable estará visible en todos
los procedimientos y funciones del formulario.

Si deseas pasarle un valor a un procedimiento o función,
se lo puedes pasar en los argumentos de la función o
procedimiento, de ésta forma, el procedimiento puede tomar
los valores de las variables que necesites manejar,
modificando el valor de éstas si los parámetros del
argumento del procedimiento son pasados por
referencia «ByRef», que por cierto, es el valor por
defecto. Si no deseas que el procedimiento modifique el
valor de las variables pasadas en el argumento, pasa
dichos parámetros por valor «ByVal».

Un saludo.

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#3 Oscar M
30/07/2003 - 12:29 | Informe spam
Muchas gracias por la aclaración.

Softjaen escribió:
"Oscar M" escribió:


Cuando creo una variable local dentro de una funcion
(function) o procedimiento (sub) a través de la sentencia:

Dim i as integer

esta variable se crea solo cuando se ejecuta esa función
o procedimiento?




Hola, Oscar:

¡Así es! Es una variable de ámbito local al procedimiento
o función donde se haya declarado, y se crea sólo cuando
se ejecuta la función o procedimiento, destruyéndose
cuándo éste termine, salvo que la variable la hayas
declarado como «Static i As Integer» y entonces su valor
permanecerá visible tantas veces llames al procedimiento o
función.


se pueden definir variables con el mismo nombre pero en
funciones diferentes sin que entren en conflicto?




Sí. Puedes declarar las variables que desees, con el mismo
nombre, en varias funciones y procedimientos, porque
mientras sean de ámbito local, no entrarán en conflicto


es mejor esta forma (asi puedo copiar y pegar las
funciones enteres de unos formularios a otros) o es
preferible crear una variable dentro del formulario y
utilizarla en todas las funciones?




En cuanto a rendimiento, se recomienda declarar las
variable de ámbito local al procedimiento, en lugar de
declararla en la sección «Declaraciones» del formulario,
ya que de ésta forma, la variable estará visible en todos
los procedimientos y funciones del formulario.

Si deseas pasarle un valor a un procedimiento o función,
se lo puedes pasar en los argumentos de la función o
procedimiento, de ésta forma, el procedimiento puede tomar
los valores de las variables que necesites manejar,
modificando el valor de éstas si los parámetros del
argumento del procedimiento son pasados por
referencia «ByRef», que por cierto, es el valor por
defecto. Si no deseas que el procedimiento modifique el
valor de las variables pasadas en el argumento, pasa
dichos parámetros por valor «ByVal».

Un saludo.

Enrique Martínez
[MS MVP - VB]

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida