Compartir a través de


Cómo: Definir un parámetro para un procedimiento

Actualización: noviembre 2007

Un parámetro permite al código de llamada pasar un valor al procedimiento cuando éste lo invoca. Los parámetros de un procedimiento se declaran igual que las variables, especificando el nombre y el tipo de datos. También puede especificarse el mecanismo para pasar argumentos, y si se trata de un parámetro opcional.

Para obtener más información, vea Argumentos y parámetros de procedimiento.

Para definir un parámetro de procedimiento

  1. En la declaración del procedimiento, agregue el nombre de parámetro a la lista de parámetros del procedimiento, separándolo de otros parámetros mediante comas.

  2. Decida el tipo de datos del parámetro.

  3. Inserte una cláusula As después del nombre de parámetro para especificar el tipo de datos.

  4. Decida el mecanismo para pasar los argumentos que desea para el parámetro. Normalmente los parámetros se transfieren por valor, a menos que desee que el procedimiento pueda cambiar su valor en el código de llamada.

  5. Anteponga ByVal o ByRef al nombre del parámetro para especificar el mecanismo para pasar argumentos. Para obtener más información, vea Diferencias entre pasar un argumento por valor y por referencia.

  6. Si el parámetro es opcional, anteponga Optional (Visual Basic) al mecanismo para pasar argumentos y, detrás del tipo de datos del parámetro, incluya un signo igual (=) y un valor predeterminado.

    En el ejemplo siguiente se define el esquema de un procedimiento Sub con tres parámetros. Los dos primeros parámetros son obligatorios, mientras que el tercero es opcional. Las declaraciones de parámetros están separadas en la lista de parámetros mediante comas.

    Sub updateCustomer(ByRef c As customer, ByVal region As String, _
      Optional ByVal level As Integer = 0)
      ' Insert code to update a customer object.
    End Sub
    

    El primer parámetro acepta un objeto customer , y updateCustomer puede actualizar directamente la variable transferida a c porque el argumento se ha transferido ByRef. El procedimiento no puede cambiar los valores de los últimos dos argumentos porque se han transferido ByVal.

    Si el código de llamada no proporciona un valor para el parámetro level , Visual Basic lo establece en el valor predeterminado, que es 0.

    Si el modificador de comprobación de tipo (Option Strict (Instrucción)) es Off, la cláusula As es opcional cuando define un parámetro. Sin embargo, si un parámetro utiliza una cláusula As, deberán utilizarla todos ellos. Si el modificador de comprobación de tipo es On, la cláusula As es obligatoria en todas las definiciones de parámetros.

    La especificación de tipos de datos para todos los elementos de programación recibe el nombre de establecimiento inflexible de tipos. Cuando se establece Option Strict On, Visual Basic fuerza el establecimiento inflexible de tipos. Esto resulta muy recomendable por las siguientes razones:

    • Habilita la compatibilidad con IntelliSense® para las variables y los parámetros. Esto permite ver las propiedades de las variables y otros miembros a medida que se escribe el código.

    • Permite que el compilador realice la comprobación de tipos. Permite detectar las instrucciones en las que se pueden producir errores en tiempo de ejecución, como el desbordamiento. También detecta llamadas a métodos en objetos que no las admiten.

    • Tiene como consecuencia una ejecución más rápida del código. Esto se debe en parte a que si no se especifica un tipo de datos para un elemento de programación, el compilador de Visual Basic asigna el tipo Object. El código compilado tendría que realizar conversiones en ambos sentidos entre Object y otros tipos de datos, lo que reduciría el rendimiento.

Vea también

Tareas

Cómo: Pasar argumentos a un procedimiento

Conceptos

Procedimientos en Visual Basic

Procedimientos Sub

Procedimientos Function

Pasar argumentos por valor y por referencia

Procedimientos recursivos

Sobrecarga de procedimientos

Otros recursos

Programación orientada a objetos en Visual Basic