Unterschiede zwischen veränderbaren und nicht veränderbaren Argumenten (Visual Basic)

Wenn Sie eine Prozedur aufrufen, übergeben Sie in der Regel Argumente an sie. Jedes Argument entspricht einem zugrunde liegenden Programmierelement. Sowohl die zugrunde liegenden Elemente als auch die eigentlichen Argumente können veränderbar oder nicht veränderbar sein.

Veränderbare und nicht veränderbare Elemente

Ein Programmierelement kann ein veränderbares Element sein, dessen Wert geändert werden kann, oder ein nicht veränderbares Element, das nach der Erstellung einen festen Wert aufweist.

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

Veränderbare Elemente Nicht veränderbare Elemente
Lokale Variablen (deklariert innerhalb von Prozeduren), einschließlich Objektvariablen, mit Ausnahme von schreibgeschützten Variablen Schreibgeschützte Variablen, Felder und Eigenschaften
Felder (Membervariablen von Modulen, Klassen und Strukturen), ausgenommen schreibgeschützte Konstanten und Literale
Eigenschaften, mit Ausnahme von schreibgeschützten Enumerationsmember
Arrayelemente Ausdrücke (auch wenn ihre Elemente änderbar sind)

Veränderbare und nicht veränderbare Argumente

Ein veränderbares Argument ist ein Argument mit einem veränderbaren zugrunde liegenden Element. Der aufrufende Code kann jederzeit einen neuen Wert speichern, und wenn Sie das Argument ByRef übergeben, kann der Code in der Prozedur auch das zugrunde liegende Element im aufrufenden Code ändern.

Ein nicht veränderbares Argument verfügt über ein nicht veränderbares zugrunde liegendes Element oder wird von ByVal übergeben. Die Prozedur kann das zugrunde liegende Element im aufrufenden Code 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 aufrufenden Code selbst nicht geändert werden.

Die aufgerufene Prozedur kann ihre lokale Kopie eines nicht veränderbaren Arguments ändern, diese Änderung wirkt sich jedoch nicht auf das zugrunde liegende Element im aufrufenden Code aus.

Weitere Informationen