@OlafSt
Wenn ich dir meinen Schlüssel zu meiner Wohnung gebe, dann kannst du in die Wohnung rein und dort umräumen.
Tauscht du den Schlüssel nun aus und gibts mir diesen zurück, komme ich nicht mehr in meine Wohnung.
procedure Foo( var AKey : TWohnung );
Gebe ich dir eine Kopie meines Schlüssels, dann kannst du immer noch in die Wohnung rein und umräumen.
Da ich aber keinen Schlüssel von dir zurücknehme, kann ich trotzdem noch mit meinem Schlüssel in meine Wohnung (und sehe dann entweder Chaos oder endlich mal eine aufgeräumte Wohnung)
procedure Foo( AKey : TWohnung );
In deinem Beispiel wird aber die Wohnung übergeben und dicht der Schlüssel
Wenn ich an der Kopie des Schlüssels etwas ändere (Eigenschaft: Farbe, oder Form), dann ist bei
procedure Foo( AKey : TKey );
dann ist doch auch der Original-Schlüssel geändert, richtig?
Gibt es eine Möglichkeit (gibt es überhaupt Situationen) wo das Objekt vollkommen als Kopie übergeben wird??
Ist das Verhalten in .Net das selbe?