Junior — Middle
Как се управлява и структурира паметта в средата C#?
sobes.tech AI
Отговор от AI
В C# управлението на паметта се извършва автоматично чрез събирача на отпадъци (Garbage Collector, GC). Паметта е разделена на две основни области:
- Стек (Stack) — съхранява локални променливи и параметри на методи. Паметта се разпределя и освобождава много бързо по принципа LIFO.
- Куча (Heap) — съхранява обекти и данни, които живеят по-дълго от времето на изпълнение на метода. Паметта в кучата се управлява от събирача на отпадъци.
Събирачът на отпадъци периодично освобождава паметта, заета от обекти, към които вече няма препратки. Това освобождава разработчика от необходимостта да управлява паметта ръчно и намалява риска от течове.
Пример за създаване на обект в кучата:
class Program
{
static void Main()
{
Person p = new Person(); // обект се създава в кучата
}
}
class Person
{
public string Name { get; set; }
}
Тук обектът Person се създава в кучата, а променливата p е в стека, като сочи към този обект.