Entwickler-Ecke
Basistechnologien - Allgmeine Frage zum Speichern von Variablen/Objekten
Sneedlewoods - Fr 05.04.13 18:39
Titel: Allgmeine Frage zum Speichern von Variablen/Objekten
Hallo Ihr,
ich programmiere jetzt schon länger, und habe darüber, wie Objekte gespeichert oder verändert werden eigentlich nur Beiläufiges mitbekommen. Mittlerweile frage ich mich dies aber immerhäufiger und wundere mich manchmal, dass meine Programme einigermaßen laufen ;)
z.B.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| public class MyObject { }
public class MyClass { MyObject[] array1 = new MyObject[10]; MyObject obj = array1[5];
} |
Traditionell würde ich einfach obj verändern und dieses dann sofern gewünscht zurückspeichern
Aber handelt es sich dabei wirklich um Zuweisungen oder zeigt obj einfach auf das array1[5]?
Vielen Dank für Euer Wissen!
Troubadix - Fr 05.04.13 19:04
Hallo Sneedlewoods,
wenn Du schon länger programmierst wundert es mich etwas, dass Du diese Frage nicht selbst beantworten kannst.
Schau dir hier mal den Unterschied zwischen Referenztypen und Wertetypen an:
Galileo Open Book [
http://openbook.galileocomputing.de/visual_csharp_2010/visual_csharp_2010_02_003.htm#mj2f5f2bae63590a7d163f13a30afb3b43] (kleines bischen runter scrollen)
Was Du da erstellst ist ein Referenztyp. Dementsprechend erzeugst du mit der zweiten Anweisung lediglich einen weiteren Verweis auf arra1[5]. Beide variablen zeigen also auf das selbe Objekt. Wenn du also den Inhalt von obj ändert ändert sich auch der Inhalt von array1[5] da es sich nur um zwei unterschiedliche Verweise auf das selbe Objekt handelt.
Gruß
Troubadix
Sneedlewoods - Sa 06.04.13 02:37
Vielen Dank Troubadix, mit dem letzten Teil kann ich tatsächlich was anfangen! Leider gibt es die lästige Angewohnheit dem Fragenden stehts eine reinzudrücken. Lass mich Deine Verwunderung also damit bestätigen, dass ich schlichtweg zu blöd war, die Frage selbst beantworten zu können. Gottseidank gibt es schlaue Leute, die den Dummen helfen können.
Damit sollte doch jetzt jeder zufriedengestellt sein ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!