Junior — Middle
Können Sie erklären, worin die Unterschiede zwischen Referenz- und Werttypen in der Programmiersprache C# bestehen?
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 kopiert. Beispiele:
int,double,struct. - Referenztypen speichern eine Referenz auf einen Speicherbereich, in dem die Daten liegen. Beim Zuweisen wird nur die Referenz kopiert, nicht die Daten selbst. Beispiele:
class,string, Arrays.
Beispiel:
int a = 5;
int b = a; // b erhält eine Kopie des Werts 5
b = 10; // a bleibt 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 und p1 verweisen auf dasselbe Objekt
p2.Name = "Bob"; // jetzt ist auch p1.Name "Bob"
Auf diese Weise spiegeln Änderungen an Referenztypen durch eine Variable alle Referenzen wider, bei Werttypen ist das nicht der Fall.