Sobes.tech
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.