Compartilhar via


Matrizes de parâmetros (Visual Basic)

Normalmente, você não pode chamar um procedimento com mais argumentos do que adeclaração de procedimentoespecifica. Quando você precisar de um número indefinido de argumentos, você pode declarar um matriz deparâmetro, que permite que um procedimento aceitar uma matriz de valores para um parâmetro. Você não precisa saber o número de elementos na matriz de parâmetro ao definir o procedimento. O tamanho da matriz for determinado individualmente por cada chamada ao procedimento.

Declarando um ParamArray.

Você pode usar o ParamArray (Visual Basic) palavra-chave para denotar uma matriz de parâmetro na lista de parâmetro . The following rules apply:

  • Um procedimento pode definir apenas uma matriz de parâmetro e deve ser o último parâmetro na definição de procedimento .

  • Matriz de parâmetro deve ser passado por valor. É uma boa prática para incluir explicitamente de programação de ByVal (Visual Basic) palavra-chave na definição de procedimento .

  • A matriz de parâmetro é opcional automaticamente. Seu valor padrão é uma vazia uma-matriz dimensional de tipo de elemento da matriz de parâmetro .

  • Tudo parâmetros que precede a matriz de parâmetro devem ser obrigatórios. Matriz de parâmetro deve ser o parâmetrode apenas opcional.

For more information, see Como: definir um procedimento com um número indefinido de parâmetros (Visual Basic).

Chamando um ParamArray.

Quando você chamar um procedimento que define uma matriz de parâmetro , você pode fornecer o argumento em qualquer uma das seguintes maneiras:

  • Nada — ou seja, você pode omitir a ParamArray (Visual Basic) argumento. Nesse caso, uma matriz vazia é passada para o procedimento. Você também pode passar o Nada (Visual Basic) palavra-chave, com o mesmo efeito.

  • Uma lista de um número arbitrário de argumentos, separados por vírgulas. The data type of each argument must be implicitly convertible to the ParamArray element type.

  • Uma matriz com o mesmo elemento digite como o tipo de elemento da matriz de parâmetro .

Em todos os casos, o código dentro do procedimento trata a matriz de parâmetro como uma-uma matriz dimensional com elementos do mesmo tipo de dados a ParamArray tipo de dados.

For more information, see Como: chamar um procedimento que recebe um número indefinido de parâmetros (Visual Basic).

Observação de segurançaObservação sobre segurança

Whenever you deal with an array which can be indefinitely large, there is a risk of overrunning some internal capacity of your application. Se você aceitar uma matriz de parâmetro , você deve teste o tamanho da matriz em que o código de chamada é passado para ele. Execute as etapas apropriadas se for muito grande para seu aplicativo. For more information, see Matrizes no Visual Basic.

Example

Description

O exemplo a seguir define e chama a função calcSum. O ParamArray modificador de parâmetro args permite que a função aceite um número variável de argumentos.

Code

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

Consulte também

Referência

Opcional (Visual Basic)

UBound

Conceitos

Procedimentos no Visual Basic

Parâmetros e argumentos de procedimento (Visual Basic)

Passando argumentos por valor e por referência (Visual Basic)

Passagem de argumentos por posição e nome (Visual Basic)

Parâmetros opcionais (Visual Basic)

Sobrecarga de procedimento (Visual Basic)

Verificação de Tipo no Visual Basic

Matrizes no Visual Basic