Sobes.tech
Junior — Middle

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.