Junior — Middle
Wie unterscheiden sich die Speicherungsarten für Referenz- und Werttypen im Speicher in C#?
sobes.tech KI
Antwort von AI
In C# werden Werttypen wie int, struct, bool im Stack oder direkt innerhalb des Objekts gespeichert, wenn sie Felder eines Referenztyps sind. Sie enthalten die eigentlichen Daten.
Referenztypen, wie Klassen (class), werden im Heap gespeichert. Die Referenzvariablen enthalten nicht die Daten selbst, sondern eine Referenz (Zeiger) auf den Speicherbereich im Heap, in dem die Objektdaten gespeichert sind.
Beispiel:
int a = 5; // 'a' speichert den Wert 5 im Stack
MyClass obj = new MyClass(); // 'obj' speichert eine Referenz auf ein Objekt im Heap
Beim Übergabe von Werttypen wird der Wert kopiert, beim Übergabe von Referenztypen wird die Referenz auf das Objekt kopiert.