Sobes.tech
Junior — Middle

Worin besteht der Unterschied zwischen Referenz- und Werttypen in der Programmierung?

sobes.tech KI

Antwort von AI

In C# werden Datentypen in Werttypen (value types) und Referenztypen (reference types) unterteilt.

Werttypen speichern die Daten direkt. Beim Zuweisen oder Übergabe an eine Methode wird der Wert selbst kopiert. Beispiele: int, double, struct, bool.

Referenztypen speichern eine Referenz auf einen Speicherbereich, in dem die Daten liegen. Beim Zuweisen wird die Referenz kopiert, nicht die Daten selbst, daher können mehrere Variablen auf dasselbe Objekt zeigen. Beispiele: class, string, array.

Beispiel:

int a = 5;
int b = a; // kopiert den Wert 5
b = 10;
// a ist immer noch 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // kopiert die Referenz
p2.Name = "Bob";
// p1.Name ist jetzt "Bob"

Das Hauptunterscheidungsmerkmal ist also die Art der Speicherung und Kopie der Daten: Werttypen kopieren die Werte, Referenztypen kopieren Referenzen auf Objekte.