Junior — Middle
Kunt u uitleggen wat het verschil is tussen referentietypen en waarde-typen in de programmeertaal C#?
sobes.tech AI
Antwoord van AI
In C# worden datatypes onderverdeeld in value types en reference types.
- Value types slaan de gegevens direct op. Bij toewijzing of doorgeven aan een methode wordt de waarde gekopieerd. Voorbeelden:
int,double,struct. - Reference types slaan een verwijzing op naar het geheugen waar de gegevens zich bevinden. Bij toewijzing wordt alleen de verwijzing gekopieerd, niet de gegevens zelf. Voorbeelden:
class,string, arrays.
Voorbeeld:
int a = 5;
int b = a; // b krijgt een kopie van de waarde 5
b = 10; // a blijft 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 en p1 verwijzen naar hetzelfde object
p2.Name = "Bob"; // nu is p1.Name ook "Bob"
Zo worden wijzigingen in referentietypes via één variabele weerspiegeld op alle referenties, terwijl dat bij value types niet het geval is.