|
|
Parameterarten
Ref-Parameter:
+ |
Man kann damit Methoden mit Übergangsparametern schreiben, also
mit Werten, die der Methode übergeben werden, von dieser verändert
werden und wieder an den Rufer zurückgegeben werden. Will man dasselbe
mit Funktionen bewerkstelligen, braucht man sowohl einen Eingangsparameter als
auch einen Funktionswert. |
+ |
Man kann damit Methoden schreiben, die mehrere Übergangsparameter besitzen.
Mit Funktionen kann man nur einen einzigen Rückgabewert liefern. |
+ |
Ref-Parameter werden beim Aufruf nicht kopiert, sondern es wird nur ihre
Adresse übergeben. Das ist bei großen Parametern effizienter als das Kopieren. |
- |
Es kann zu Seiteneffekten kommen, da der formale Ref-Parameter ein Alias-Name
des aktuellen Ref-Parameters ist. Wenn die Methode den formalen Parameter
verändert, ändert sich gleichzeitig auch der aktuelle Parameter. |
Out-Parameter:
+ |
Man kann damit Methoden schreiben, die mehrere Rückgabewerte liefern.
Mit Funktionen kann man nur einen einzigen Rückgabewert liefern. |
+ |
Out-Parameter werden bei der Rückgabe nicht kopiert, sondern es
wird beim Methodenaufruf nur die Adresse einer Variablen übergeben,
in die die aufgerufene Methode den Wert des Out-Parameters schreibt.
Das ist bei großen Parametern effizienter als das Kopieren. |
+ |
Der Compiler prüft, ob die aufgerufene Methode dem Out-Parameter
tatsächlich einen Wert zuweist. |
- |
Es kann zu Seiteneffekten kommen, da der formale Out-Parameter ein
Alias-Name des aktuellen Out-Parameters ist. Wenn die Methode den formalen
Parameter verändert, ändert sich gleichzeitig auch der aktuelle Parameter. |
Funktionswerte:
+ |
Es kann zu keinen Seiteneffekten kommen. |
+ |
Der Rückgabewert kann vom Rufer ignoriert werden, was aber vielleicht
auch als Nachteil gewertet werden kann. |
- |
Eine Methode kann nicht mehrere Funktionswerte liefern. |
|