Sobes.tech
Junior — Middle

C# muhitida xotira qanday boshqariladi va tuziladi?

sobes.tech AI

AIdan javob

C# da xotira boshqaruvi avtomatik ravishda Garbage Collector (GC) yordamida amalga oshiriladi. Xotira ikki asosiy hududga bo'linadi:

  • Stack (Stack) — lokal o'zgaruvchilar va metod parametrlarini saqlaydi. Xotira LIFO tamoyili bo'yicha juda tez ajratiladi va bo'shatiladi.
  • Heap (Heap) — metod bajarilishidan uzoqroq yashovchi ob'ektlar va ma'lumotlarni saqlaydi. Heapdagi xotira garbage collector tomonidan boshqariladi.

Garbage collector vaqti-vaqti bilan ob'ektlar uchun ajratilgan xotirani bo'shatadi, ular uchun hech qanday referenslar qolmagan. Bu dasturchini xotirani qo'lda boshqarishdan ozod qiladi va xotira oqib ketish xavfini kamaytiradi.

Heapda ob'ekt yaratish misoli:

class Program
{
    static void Main()
    {
        Person p = new Person(); // ob'ekt heapda yaratiladi
    }
}

class Person
{
    public string Name { get; set; }
}

Bu yerda, Person ob'ekti heapda yaratiladi, va p o'zgaruvchisi stackda joylashgan bo'lib, bu ob'ektga murojaat qiladi.