Unterschiede zwischen veränderbaren und nicht veränderbaren Argumenten

Aktualisiert: November 2007

Wenn Sie eine Prozedur aufrufen, übergeben Sie i. d. R. mindestens ein Argument an die Prozedur. Jedes Argument entspricht einem zugrunde liegenden Programmierelement. Sowohl die zugrunde liegenden Elemente als auch die Argumente selbst können veränderbar oder nicht veränderbar sein.

Veränderbare und nicht veränderbare Elemente

Ein Programmierelement kann entweder ein veränderbares Element sein, dessen Wert sich ändert, oder ein nicht veränderbares Element, dessen Wert fest bleibt, nachdem es erstellt wurde.

In der folgenden Tabelle werden veränderbare und nicht veränderbare Programmierelemente aufgeführt.

Veränderbare Elemente

Nicht veränderbare Elemente

Lokale Variablen (deklariert in Prozeduren) einschließlich Objektvariablen, außer schreibgeschützten Variablen

Schreibgeschützte Variablen, Felder und Eigenschaften

Felder (Membervariablen von Modulen, Klassen und Strukturen), außer schreibgeschützten Feldern

Konstanten und Literale

Eigenschaften, außer schreibgeschützten Eigenschaften

Enumerationsmember

Arrayelemente

Ausdrücke (auch wenn deren Elemente veränderbar sind)

Veränderbare und nicht veränderbare Argumente

Einem veränderbaren Argument liegt ein veränderbares Element zugrunde. Der Aufrufcode kann jederzeit einen neuen Wert speichern. Wenn eine ByRef-Übergabe des Arguments erfolgt, kann der Code in der Prozedur das zugrunde liegende Element im Aufrufcode ebenfalls ändern.

Einem nicht veränderbaren Argument liegt entweder ein nicht veränderbares Element zugrunde, oder es wird mit ByVal übergeben. Die Prozedur kann das zugrunde liegende Element im Aufrufcode nicht ändern, auch wenn es sich um ein veränderbares Element handelt. Wenn es sich um ein nicht veränderbares Element handelt, kann es vom Aufrufcode selbst nicht geändert werden.

Die aufgerufene Prozedur ändert gegebenenfalls die Kopie eines nicht veränderbaren Arguments; die Änderung hat jedoch keinen Einfluss auf das im Aufrufcode zugrunde liegende Element.

Siehe auch

Aufgaben

Gewusst wie: Übergeben von Argumenten an eine Prozedur

Gewusst wie: Ändern des Werts eines Prozedurarguments

Gewusst wie: Schützen eines Prozedurarguments gegen Wertänderungen

Gewusst wie: Erzwingen, dass ein Argument als Wert übergeben wird

Konzepte

Prozeduren in Visual Basic

Parameter und Argumente von Prozeduren

Übergeben von Argumenten als Wert und als Verweis

Unterschiede zwischen dem Übergeben von Argumenten als Wert und als Verweis

Argumentübergabe nach Position und Namen

Wert- und Verweistypen