Sobes.tech
Junior — Middle

Hoe werken referentietypen in het geheugen en hoe verschillen ze van waardevolle typen?

sobes.tech AI

Antwoord van AI

In C# zijn er twee hoofdtypen gegevens: value types (waarde types) en reference types (referentie types).

  • Value types slaan de gegevens direct op in het geheugen waar ze zijn gedeclareerd. Bijvoorbeeld, int, struct. Bij toewijzing wordt de waarde gekopieerd, en elke variabele houdt zijn eigen kopie.

  • Reference types slaan in de variabele niet de gegevens zelf op, maar een verwijzing (pointer) naar het geheugen waar de gegevens zich bevinden. Bijvoorbeeld, class, string. Bij toewijzing wordt alleen de verwijzing gekopieerd, niet het object, waardoor meerdere variabelen naar hetzelfde object kunnen wijzen.

Voorbeeld:

int a = 5;
int b = a; // kopie van de waarde
b = 10;
// a is nog steeds 5

class Person { public string Name; }
Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // kopie van de verwijzing
p2.Name = "Пётр";
// p1.Name is ook "Пётр", omdat p1 en p2 naar hetzelfde object verwijzen

Op deze manier maken reference types het mogelijk om met één object te werken vanuit verschillende variabelen, terwijl value types onafhankelijke kopieën van de gegevens opslaan.