Sobes.tech
Junior — Middle

Leg uit wat de verschillen zijn tussen de processen van objectimplementatie en -verpakking, evenals tussen het doorgeven van parameters via referentie en waarde in de context van werken met referentietypen en structuren.

sobes.tech AI

Antwoord van AI

In C#:

Boxing (boxen) — proces waarbij een waarde van een type (bijvoorbeeld een structuur) wordt omgezet in een referentietype-object (object). Dit creëert een kopie van de waarde op de heap.

Unboxing (ontboxen) — het tegenovergestelde proces, waarbij de waarde uit het object wordt gehaald en terug naar het value type wordt geconverteerd.

Voorbeeld:

int x = 123;          // value type
object o = x;         // boxing
int y = (int)o;       // unboxing

Parameteroverdracht:

  • Op waarde (standaard voor value types): de waarde wordt gekopieerd, wijzigingen binnen de methode beïnvloeden het origineel niet.
  • Op referentie (ref, out): een verwijzing naar de variabele wordt doorgegeven, wijzigingen binnen de methode beïnvloeden het origineel.

Voor reference types wordt een kopie van de referentie doorgegeven, maar niet van het object. Wijzigingen aan de velden van het object binnen de methode zijn zichtbaar van buitenaf, maar de heraanduiding van de referentie niet.

Samengevat:

  • Embedding — het inpakken van een value type in een object.
  • Unboxing — het uitpakken van een value type uit een object.
  • Overdracht op waarde — kopie van de gegevens.
  • Overdracht op referentie — het doorgeven van de referentie naar de gegevens.