StructPerformance: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Florian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Greitschus (Diskussion | Beiträge)
Zeile 48: Zeile 48:
{{BA|Greitschus|Ich denke, Fix hatte schon Recht mit "Objekt". Klassen werden ja nicht an Methoden übergeben, sondern nur Referenzen auf Instanzen von Klassen. Man sollte vielleicht sowas schreiben, wie "Instanzen einer Klasse sind reference Types" o.ä., damit der auszudrückende Sinn gewahrt bleibt.}}
{{BA|Greitschus|Ich denke, Fix hatte schon Recht mit "Objekt". Klassen werden ja nicht an Methoden übergeben, sondern nur Referenzen auf Instanzen von Klassen. Man sollte vielleicht sowas schreiben, wie "Instanzen einer Klasse sind reference Types" o.ä., damit der auszudrückende Sinn gewahrt bleibt.}}
{{BA|Florian|so?}}
{{BA|Florian|so?}}
{{BA|Greitschus|Jau. Klingt gut. Bis auf den ersten Satz, den find ich noch etwas verwirrt. "Dieses Codebeispiel verwendet [[CSharp#Klassen_und_Methoden|Klassen]] und deren Instanzen sind [[CSharp#Datentypen|reference types]]."}}


Die Methode ChangeNumber2 greift dagegen über die kopierte Referenz auf die selbe Klasseninstanz zurück, auf die die ursprüngliche Referenz ebenfalls verweist. Daher wird hier der Zahlenwert geändert und anschließend auch entsprechend ausgegeben.
Die Methode ChangeNumber2 greift dagegen über die kopierte Referenz auf die selbe Klasseninstanz zurück, auf die die ursprüngliche Referenz ebenfalls verweist. Daher wird hier der Zahlenwert geändert und anschließend auch entsprechend ausgegeben.
Zeile 101: Zeile 102:
System.Console.WriteLine(struct1); //gibt {X:2 Y:2 Z:2} aus
System.Console.WriteLine(struct1); //gibt {X:2 Y:2 Z:2} aus
System.Console.WriteLine(struct2); //gibt {X:4 Y:2 Z:2} aus
System.Console.WriteLine(struct2); //gibt {X:4 Y:2 Z:2} aus
</source>
</source> [[Kategorie:Code-Beispiele]]


== Call by Reference ==
== Call by Reference ==