Share via


Matrices de parámetros (Visual Basic)

Normalmente no es posible llamar a un procedimiento con un número de argumentos superior al especificado en la declaración del procedimiento. Si se necesita un número indeterminado de argumentos, puede declararse una matriz de parámetros, que permite que un procedimiento acepte una matriz de valores en un parámetro. No es necesario conocer el número de elementos de la matriz de parámetros en el momento de definir el procedimiento. El tamaño de la matriz se determina individualmente en cada llamada al procedimiento.

Declarar una matriz de parámetros

Utilice la palabra clave ParamArray (Visual Basic) para denotar una matriz de parámetros en la lista de parámetros. Se aplican las siguientes reglas:

  • Un procedimiento puede definir únicamente una matriz de parámetros, que debe ser el último parámetro en la definición del procedimiento.

  • La matriz de parámetros debe pasarse por valor. Es un hábito de programación recomendado incluir de manera explícita la palabra clave ByVal (Visual Basic) en la definición del procedimiento.

  • La matriz de parámetros es opcional de forma automática. Su valor predeterminado es una matriz unidimensional vacía del tipo de elemento de la matriz de parámetros.

  • Todos los parámetros que preceden a la matriz de parámetros deben ser obligatorios. La matriz de parámetros debe ser el único parámetro opcional.

Para obtener más información, vea Cómo: Definir un procedimiento con un número indefinido de parámetros (Visual Basic).

Llamar a un lista de parámetros

Cuando se llama a un procedimiento que define una matriz de parámetros, se puede proporcionar el argumento de los siguientes modos:

  • Ninguno, es decir, puede omitirse el argumento ParamArray (Visual Basic). En este caso, se pasará una matriz vacía al procedimiento. También puede pasarse la palabra clave Nothing (Visual Basic), obteniéndose el mismo efecto.

  • Una lista con un número arbitrario de argumentos, separados por comas. El tipo de los datos de cada argumento debe poder convertirse implícitamente al tipo de elemento ParamArray.

  • Una matriz con el mismo tipo de elemento que la matriz de parámetros.

En todas las clases, el código del procedimiento debe considerar la matriz de parámetros una matriz unidimensional, cuyos elementos deben tener el mismo tipo de datos que ParamArray.

Para obtener más información, vea Cómo: Llamar a un procedimiento que toma un número indefinido de parámetros (Visual Basic).

Nota de seguridadNota sobre la seguridad

Si se trabaja con matrices cuyo tamaño es excesivamente grande, existe el riesgo de sobrecargar alguna capacidad interna de la aplicación. Si acepta una matriz de parámetros, debe comprobar el tamaño de la matriz que el código de llamada ha transferido. Tome las medidas necesarias si la matriz es demasiado grande para la aplicación. Para obtener más información, vea Matrices en Visual Basic.

Ejemplo

Descripción

En el ejemplo siguiente se define y se llama a la función calcSum. El modificador ParamArray para el parámetro args permite que la función acepte un número variable de argumentos.

Código

Module Module1

    Sub Main()
        ' In the following function call, calcSum's local variables 
        ' are assigned the following values: args(0) = 4, args(1) = 3, 
        ' and so on. The displayed sum is 10.
        Dim returnedValue As Double = calcSum(4, 3, 2, 1)
        Console.WriteLine("Sum: " & returnedValue)
        ' Parameter args accepts zero or more arguments. The sum 
        ' displayed by the following statements is 0.
        returnedValue = calcSum()
        Console.WriteLine("Sum: " & returnedValue)
    End Sub

    Public Function calcSum(ByVal ParamArray args() As Double) As Double
        calcSum = 0
        If args.Length <= 0 Then Exit Function
        For i As Integer = 0 To UBound(args, 1)
            calcSum += args(i)
        Next i
    End Function

End Module

Vea también

Referencia

Optional (Visual Basic)

UBound

Conceptos

Procedimientos en Visual Basic

Argumentos y parámetros de procedimiento (Visual Basic)

Pasar argumentos por valor y por referencia (Visual Basic)

Pasar argumentos por posición o por nombre (Visual Basic)

Parámetros opcionales (Visual Basic)

Sobrecarga de procedimiento (Visual Basic)

Comprobar tipos en Visual Basic

Matrices en Visual Basic