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
Parameter und Argumente von Prozeduren
Übergeben von Argumenten als Wert und als Verweis
Unterschiede zwischen dem Übergeben von Argumenten als Wert und als Verweis