Lista de parámetros (Visual Basic)

Especifica los parámetros que espera un procedimiento cuando se le llama. Los distintos parámetros se separan mediante comas. A continuación, se muestra la sintaxis de un parámetro.

Sintaxis

[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]

Partes

attributelist
Opcional. Lista de atributos que se aplican a este parámetro. Debe incluir la lista de atributos entre corchetes angulares ("<" y ">").

Optional
Opcional. Especifica que este parámetro no es necesario cuando se llama al procedimiento.

ByVal
Opcional. Especifica que el procedimiento no puede reemplazar ni reasignar el elemento variable subyacente al argumento correspondiente en el código de llamada.

ByRef
Opcional. Especifica que el procedimiento puede modificar el elemento variable subyacente en el código de llamada de la misma forma que puede hacerlo el propio código de llamada.

ParamArray
Opcional. Especifica que el último parámetro de la lista de parámetros es una matriz opcional de elementos del tipo de datos especificado. Esto permite que el código de llamada pase un número arbitrario de argumentos al procedimiento.

parametername
Necesario. Nombre de la variable local que representa el parámetro.

parametertype
Obligatorio si Option Strict es On. Tipo de datos de la variable local que representa el parámetro.

defaultvalue
Obligatorio para los parámetros Optional. Cualquier constante o expresión constante que se evalúe como el tipo de datos del parámetro. Si el tipo es Object, o bien una clase, interfaz, matriz o estructura, el valor predeterminado solo puede ser Nothing.

Comentarios

Los parámetros están rodeados por paréntesis y separados por comas. Un parámetro se puede declarar con cualquier tipo de datos. Si no se especifica parametertype, el valor predeterminado es Object.

Cuando el código de llamada llama al procedimiento, pasa un argumento a cada parámetro requerido. Para obtener más información, consulte Diferencias entre parámetros y argumentos.

El argumento que el código de llamada pasa a cada parámetro es un puntero a un elemento subyacente en el código de llamada. Si este elemento es invariable (una constante, un literal, una enumeración o una expresión), es imposible que cualquier código lo cambie. Si es un elemento variable (una variable declarada, un campo, una propiedad, un elemento de matriz o un elemento de estructura), el código de llamada puede cambiarlo. Para obtener más información, consulte Diferencias entre argumentos modificables y no modificables.

Si se pasa ByRef a un elemento variable, el procedimiento también puede cambiarlo. Para obtener más información, consulte Diferencias entre pasar un argumento por valor y por referencia.

Reglas

  • Paréntesis Si especifica una lista de parámetros, debe incluirla entre paréntesis. Aunque no haya parámetros, puede usar paréntesis para incluir una lista vacía. Esto mejora la legibilidad del código al aclarar que el elemento es un procedimiento.

  • Parámetros opcionales Si usa el modificador Optional en un parámetro, todos los parámetros posteriores de la lista también deben ser opcionales y declararse mediante el modificador Optional.

    Cada declaración de parámetro opcional debe proporcionar la cláusula defaultvalue.

    Para obtener más información, consulte Parámetros opcionales.

  • Matrices de parámetros Debe especificar ByVal para un parámetro ParamArray.

    No se pueden usar Optional y ParamArray en la misma lista de parámetros.

    Para obtener más información, consulte Matrices de parámetros.

  • Mecanismo de paso El mecanismo predeterminado para cada argumento es ByVal, lo que significa que el procedimiento no puede cambiar el elemento variable subyacente. Sin embargo, si el elemento es un tipo de referencia, el procedimiento puede modificar el contenido o los miembros del objeto subyacente, aunque no pueda reemplazar ni reasignar el objeto en sí.

  • Nombres de parámetro Si el tipo de datos del parámetro es una matriz, agregue paréntesis inmediatamente tras parametername. Para obtener más información sobre los nombres de parámetros, consulte Nombres de elementos declarados.

Ejemplo

En el ejemplo siguiente se muestra un procedimiento Function que define dos parámetros.

Public Function HowMany(ByVal ch As Char, ByVal st As String) As Integer
End Function
Dim howManyA As Integer = HowMany("a"c, "How many a's in this string?")

Consulte también