Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al pasar uno o varios argumentos a un procedimiento, cada argumento corresponde a un elemento de programación subyacente en el código que realiza la llamada. Puede pasar el valor de este elemento subyacente o bien una referencia a este. Esto se conoce como mecanismo de paso.
Pasar por valor
Para pasar un argumento por valor , especifique la palabra clave ByVal para el parámetro correspondiente en la definición del procedimiento. Cuando se usa este mecanismo de paso, Visual Basic copia el valor del elemento de programación subyacente en una variable local del procedimiento. El código de procedimiento no tiene acceso al elemento subyacente en el código que realiza la llamada.
Paso por referencia
Para pasar un argumento por referencia , especifique la palabra clave ByRef para el parámetro correspondiente en la definición del procedimiento. Cuando se usa este mecanismo de paso, Visual Basic proporciona al procedimiento una referencia directa al elemento de programación subyacente en el código de llamada.
Mecanismo de Paso y Tipo de Elemento
La elección del mecanismo de paso no es la misma que la clasificación del tipo de elemento subyacente. El paso por valor o por referencia se refiere a lo que Visual Basic proporciona al código del procedimiento. Un tipo de valor o tipo de referencia hace referencia a cómo se almacena un elemento de programación en la memoria.
Sin embargo, el mecanismo de paso y el tipo de elemento están interrelacionados. El valor de un tipo de referencia es un puntero a los datos en otra parte de la memoria. Esto significa que, cuando se pasa un tipo de referencia por valor, el código del procedimiento tiene un puntero a los datos del elemento subyacente, aunque no pueda acceder al propio elemento subyacente. Por ejemplo, si el elemento es una variable de matriz, el código de procedimiento no tiene acceso a la propia variable, pero puede acceder a los miembros de la matriz.
Capacidad de modificar
Cuando se pasa un elemento no modificable como argumento, el procedimiento nunca puede modificarlo en el código que realiza la llamada, ya sea que se pase ByVal
o ByRef
.
Para un elemento modificable, en la tabla siguiente se resume la interacción entre el tipo de elemento y el mecanismo de paso.
Tipo de elemento | Pasado ByVal |
Pasado ByRef |
---|---|---|
Tipo de valor (contiene solo un valor) | El procedimiento no puede cambiar la variable ni ninguno de sus miembros. | El procedimiento puede cambiar la variable y sus miembros. |
Tipo de referencia (contiene un puntero a una clase o instancia de estructura) | El procedimiento no puede cambiar la variable, pero puede cambiar los miembros de la instancia a la que apunta. | El procedimiento puede cambiar la variable y los miembros de la instancia a la que apunta. |
Consulte también
- procedimientos de
- Parámetros y argumentos del procedimiento
- Cómo: Pasar argumentos a un procedimiento
- Pasar argumentos por valor y por referencia
- Diferencias entre argumentos modificables y no modificables
- Cómo: Cambiar el valor de un argumento de procedimiento
- Cómo: Proteger un argumento de procedimiento frente a cambios de valor
- Procedimiento: Forzar un argumento para que pase como un valor
- Pasar argumentos por posición y por nombre
- Tipos de Valor y Tipos de Referencia