Sobes.tech
Junior — Middle

Vysvetlite rozdiely medzi procesmi nasadenia a balenia objektov, ako aj medzi odovzdávaním parametrov odkazom a hodnotou v kontexte práce s referenčnými typmi a štruktúrami.

sobes.tech AI

Odpoveď od AI

V C#:

Boxing (balenie) — proces prevodu vrednosnega tipa (npr. strukture) v referenčni objekt (object). To ustvari kopijo vrednosti na hrupu.

Unboxing (razpakiranje) — obratni proces, izvlečenje vrednosti iz objekta nazaj v vrednosni tip.

Primer:

int x = 123;          // vrednosni tip
object o = x;         // balenje
int y = (int)o;       // razpakiranje

Prenos parametrov:

  • Po vrednosti (privzeto za vrednosne tipe): vrednost se kopira, spremembe znotraj metode ne vplivajo na original.
  • Po referenci (ref, out): se prenese referenca na spremenljivko, spremembe znotraj metode vplivajo na original.

Za referenčne tipe se prenese kopija reference, ne objekta. Spremembe na poljih objekta znotraj metode so vidne od zunaj, vendar prepisovanje reference — ne.

Na kratko:

  • Baliranje — ovijanje vrednostnega tipa v object.
  • Razpakiranje — izvlečenje vrednostnega tipa iz object.
  • Prenos po vrednosti — kopija podatkov.
  • Prenos po referenci — prenos reference na podatke.