Share via


Parameterarrays (Visual Basic)

Normalerweise kann eine Prozedur nur mit der in der Prozedurdeklaration angegebenen Anzahl an Argumenten aufgerufen werden. Wenn jedoch eine unbestimmte Anzahl von Argumenten erforderlich ist, können Sie ein Parameterarray deklarieren. Dadurch akzeptiert die Prozedur ein Array von Werten für einen Parameter. Beim Definieren der Prozedur müssen Sie die Anzahl der Elemente im Parameterarray nicht kennen. Die Arraygröße wird durch die einzelnen Aufrufe der Prozedur jeweils individuell festgelegt.

Deklarieren eines ParamArray

Um auf ein Parameterarray in der Parameterliste hinzudeuten, verwenden Sie das ParamArray (Visual Basic)-Schlüsselwort. Dabei gelten folgende Regeln:

  • Eine Prozedur kann nur 1 Parameterarray definieren, und es muss sich um den letzten Parameter in der Prozedurdefinition handeln.

  • Das Parameterarray muss durch Wert übergeben werden. Eine gute Lösung beim Programmieren ist es, das ByVal (Visual Basic)-Schlüsselwort explizit in die Prozedurdefinition einzufügen.

  • Das Parameterarray ist automatisch optional. Sein Standardwert ist ein leeres, eindimensionales Array mit dem Elementtyp des Parameterarrays.

  • Dem Parameterarray dürfen nur erforderliche Parameter vorangehen. Als optionaler Parameter ist nur das Parameterarray zulässig.

Weitere Informationen finden Sie unter Gewusst wie: Definieren einer Prozedur mit einer unbestimmten Anzahl von Parametern (Visual Basic).

Aufrufen eines ParamArray

Wenn Sie eine Prozedur aufrufen, die ein Parameterarray definiert, können Sie das Argument auf eine der folgenden Weisen angeben:

  • Nothing. Das ParamArray (Visual Basic)-Argument kann weggelassen werden. In diesem Fall wird der Prozedur ein leeres Array übergeben. Dasselbe kann auch durch Übergabe des Nothing (Visual Basic)-Schlüsselworts erreicht werden.

  • Eine Liste mit einer beliebigen Anzahl von Argumenten, die durch Kommas voneinander getrennt sind. Der Datentyp der einzelnen Argumente muss implizit in den ParamArray-Elementtyp konvertiert werden können.

  • Ein Array mit dem gleichen Elementtyp wie der Elementtyp des Parameterarrays.

In jedem Fall muss der Code innerhalb der Prozedur das Parameterarray als eindimensionales Array behandeln, dessen Elemente jeweils denselben Datentyp haben wie ParamArray.

Weitere Informationen finden Sie unter Gewusst wie: Aufrufen einer Prozedur mit einer unbestimmten Anzahl von Parametern (Visual Basic).

SicherheitshinweisSicherheitshinweis

Wenn Sie mit einem Array arbeiten, das unendlich groß sein kann, besteht die Gefahr, dass die interne Kapazität der Anwendung überschritten wird. Wenn Sie ein Parameterarray annehmen, sollten Sie die Größe des Arrays ermitteln, das der Aufrufcode an das Parameterarray übergeben hat. Ergreifen Sie entsprechende Schritte, wenn das Array für die Anwendung zu groß ist. Weitere Informationen finden Sie unter Arrays in Visual Basic.

Beispiel

Beschreibung

Im folgenden Beispiel wird die calcSum-Funktion definiert und aufgerufen. Durch den ParamArray-Modifizierer für den args-Parameter kann die Funktion eine variable Anzahl von Argumenten akzeptieren.

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

Siehe auch

Referenz

Optional (Visual Basic)

UBound

Konzepte

Prozeduren in Visual Basic

Parameter und Argumente von Prozeduren (Visual Basic)

Übergeben von Argumenten als Wert und als Verweis (Visual Basic)

Übergeben von Argumenten nach Position und Name (Visual Basic)

Optionale Parameter (Visual Basic)

Prozedurüberladung (Visual Basic)

Typüberprüfung in Visual Basic

Arrays in Visual Basic