Wie funktionieren Referenzdatentypen im Speicher und wie unterscheiden sie sich von Wertetypen?
sobes.tech KI
Antwort von AI
In C# gibt es zwei Haupttypen von Daten: Werttypen (value types) und Referenztypen (reference types).
-
Werttypen speichern die Daten direkt im Speicher, wo sie deklariert sind. Zum Beispiel
int,struct. Beim Zuweisen wird der Wert kopiert, und jede Variable hält ihre eigene Kopie. -
Referenztypen speichern in der Variablen nicht die Daten selbst, sondern eine Referenz (Zeiger) auf den Speicherbereich, in dem die Daten liegen. Zum Beispiel
class,string. Beim Zuweisen wird nur die Referenz kopiert, nicht das Objekt, sodass mehrere Variablen auf dasselbe Objekt zeigen können.
Beispiel:
int a = 5;
int b = a; // Kopie des Wertes
b = 10;
// a ist immer noch 5
class Person { public string Name; }
Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // Kopie der Referenz
p2.Name = "Пётр";
// p1.Name ist auch "Пётр", da p1 und p2 auf dasselbe Objekt zeigen
Auf diese Weise ermöglichen Referenztypen die Arbeit mit einem einzigen Objekt aus verschiedenen Variablen, während Werttypen unabhängige Kopien der Daten speichern.