Parameterliste
Aktualisiert: November 2007
Gibt die Parameter an, die eine Prozedur bei ihrem Aufruf erwartet. Mehrere Parameter werden durch Komma voneinander getrennt. Im Folgenden ist die Syntax für einen Parameter dargestellt.
[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]
Bestandteile
attributelist
Optional. Liste der Attribute, die für diesen Parameter zutreffen. Schließen Sie die Attributliste in spitzen Klammern ("<" und ">") ein.Optional
Optional. Gibt an, dass dieser Parameter beim Aufruf der Prozedur nicht erforderlich ist.ByVal
Optional. Gibt an, dass die Prozedur das dem entsprechenden Argument zugrunde liegende Variablenelement im Aufrufcode weder ersetzen noch neu zuweisen kann.ByRef
Optional. Gibt an, dass die Prozedur das zugrunde liegende Variablenelement im Aufrufcode genauso ändern kann wie der Aufrufcode selbst.ParamArray
Optional. Gibt an, dass der letzte Parameter in der Parameterliste ein optionales Array aus Elementen mit dem angegebenen Datentyp ist. Vom Aufrufcode kann hierdurch eine beliebige Anzahl von Argumenten an die Prozedur übergeben werden.parametername
Erforderlich. Name der lokalen Variablen, die den Parameter darstellt.parametertype
Erforderlich, wenn Option Strict den Wert On hat. Datentyp der lokalen Variable, die den Parameter darstellt.defaultvalue
Erforderlich für Optional-Parameter. Jede beliebige Konstante bzw. jeder beliebige Konstantenausdruck, die bzw. der als Datentyp des Parameters ausgewertet wird. Beim Object-Datentyp oder einer Klasse, einer Schnittstelle, einem Array oder einer Struktur kann der Standardwert nur Nothing sein.
Hinweise
Parameter werden von runden Klammern umgeben und durch Kommas getrennt. Ein Parameter kann mit jedem Datentyp deklariert werden. Wenn Sie keinen Wert für parametertype angeben, wird standardmäßig Object verwendet.
Wenn der Aufrufcode die Prozedur aufruft, übergibt er ein Argument an jeden erforderlichen Parameter. Weitere Informationen hierzu finden Sie unter Unterschiede zwischen Parametern und Argumenten.
Das Argument, das der Aufrufcode an jeden Parameter übergibt, ist ein Zeiger auf ein zugrunde liegendes Element im Aufrufcode. Wenn dieses Element ein nicht variables Element (Konstante, Literal, Enumeration oder Ausdruck) ist, kann es nicht durch Code geändert werden. Wenn es sich um ein variables Element (deklarierte Variable, Feld, Eigenschaft, Arrayelement oder Strukturelement) handelt, kann es vom Aufrufcode geändert werden. Weitere Informationen finden Sie unter Unterschiede zwischen veränderbaren und nicht veränderbaren Argumenten.
Wenn ein variables Element mit ByRef übergeben wird, kann die Prozedur es ebenfalls ändern. Weitere Informationen hierzu finden Sie unter Unterschiede zwischen dem Übergeben von Argumenten als Wert und als Verweis.
Regeln
Runde Klammern. Wenn Sie eine Parameterliste angeben, müssen Sie die Liste zwischen runde Klammern setzen. Wenn keine Parameter vorhanden sind, können Sie trotzdem runde Klammern verwenden, die eine leere Liste enthalten. Dies verbessert die Lesbarkeit des Codes, weil dadurch deutlich wird, dass es sich bei dem Element um eine Prozedur handelt.
Optionale Parameter. Wenn Sie den Optional-Modifizierer für einen Parameter verwenden, müssen alle nachfolgenden Parameter in der Liste ebenfalls optional und mit dem Optional-Modifizierer deklariert sein.
Jede optionale Parameterdeklaration muss die defaultvalue-Klausel angeben.
Parameterarrays. Sie müssen ByVal für einen ParamArray-Parameter angeben.
Optional und ParamArray dürfen nicht zusammen in einer Parameterliste angegeben werden.
Übergabemechanismus. Der Standardmechanismus für jedes Argument ist ByVal. Dies bedeutet, dass die Prozedur das zugrunde liegende variable Element nicht ändern kann. Wenn das Element jedoch ein Referenztyp ist, kann die Prozedur den Inhalt oder die Member des zugrunde liegenden Objekts auch dann ändern, wenn sie das Objekt selbst nicht ersetzen oder neu zuweisen kann.
Parameternamen. Wenn der Datentyp des Parameters ein Array ist, muss parametername sofort von runden Klammern gefolgt werden. Weitere Informationen zu Parameternamen finden Sie unter Namen deklarierter Elemente.
Beispiel
Das folgenden Beispiel zeigt eine Function-Prozedur, die zwei Parameter definiert.
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?")
Siehe auch
Aufgaben
Gewusst wie: Umbrechen und Zusammenfassen von Anweisungen in Code
Konzepte
Referenz
Function-Anweisung (Visual Basic)