Freigeben über


Unterschiede zwischen modifizierbaren und nicht modifizierbaren Argumenten (Visual Basic)

Wenn Sie eine Prozedur aufrufen, übergeben Sie in der Regel ein oder mehrere Argumente an die Prozedur. Jedes Argument entspricht einem zugrunde liegenden Programmierelement. Sowohl die zugrunde liegenden Elemente als auch die Argumente selbst können entweder modifizierbar oder nicht modifizierbar sein.

Modifizierbare und nicht modifizierbare Elemente

Ein Programmierelement kann entweder ein modifizierbares Element sein, das seinen Wert geändert haben kann, oder ein nicht modifizierbares Element, das einen festen Wert aufweist, nachdem es erstellt wurde.

In der folgenden Tabelle sind modifizierbare und nicht modifizierbare Programmierelemente aufgeführt.

Modifizierbare Elemente Nicht modifizierbare 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 geändert werden können)

Modifizierbare und nicht modifizierbare Argumente

Ein modifizierbares Argument ist ein Argument mit einem modifizierbaren 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 modifizierbares Argument weist entweder ein nicht modifizierbares zugrunde liegendes Element auf oder wird ByVal übergeben. Die Prozedur kann das zugrunde liegende Element im aufrufenden Code nicht ändern, auch wenn es sich um ein modifizierbares Element handelt. Wenn es sich um ein nicht modifizierbares Element handelt, kann der aufrufende Code selbst es nicht ändern.

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

Siehe auch