Sobes.tech
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 е в стека, като сочи към този обект.