Junior — Middle
Ako sa spravuje a štruktúruje pamäť v prostredí C#?
sobes.tech AI
Odpoveď od AI
V C# je správa pamäte vykonávaná automaticky pomocou zberača odpadu (Garbage Collector, GC). Pamäť je rozdelená na dve hlavné oblasti:
- Zásobník (Stack) — ukladá lokálne premenné a parametre metód. Pamäť sa prideľuje a uvoľňuje veľmi rýchlo podľa princípu LIFO.
- Hromada (Heap) — ukladá objekty a údaje, ktoré žijú dlhšie ako doba behu metódy. Pamäť na hromade spravuje garbage collector.
Garbage collector periodicky uvoľňuje pamäť obsadenú objektmi, na ktoré už nie sú odkazy. To odľahčuje vývojára od manuálnej správy pamäte a znižuje riziko únikov.
Príklad vytvorenia objektu na hromade:
class Program
{
static void Main()
{
Person p = new Person(); // objekt je vytvorený na hromade
}
}
class Person
{
public string Name { get; set; }
}
Tu je objekt Person vytvorený na hromade, zatiaľ čo premenná p je na zásobníku a odkazuje na tento objekt.