Junior
Qayta ishlash va qiymat turlari o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Ma'lumotlarni saqlash va uzatish usulidagi farqlar:
-
Qiymat turlari (Value Types):
- To'g'ridan-to'g'ri e'lon qilingan joyda (stack yoki qiymat turi nusxasi ichida) saqlanadi.
- Belgilash yoki qiymat bilan o'tkazishda, qiymaning nusxasi yaratiladi.
- Primitiv turlar (int, float, bool va boshqalar), tuzilmalar (struct) va enumlar (enum) kiradi.
- Seal qilingan (sealed) va meros olish mumkin emas.
-
Manba turlari (Reference Types):
- Heapda saqlanadi. O'zgaruvchi qiymat emas, balki heapdagi manzilga havolani o'z ichiga oladi.
- Belgilash yoki qiymat bilan o'tkazishda, faqat havola nusxalanadi, ob'ekt emas.
- Classlar (class), interfeyslar (interface), delegatlar (delegate) va massivlar (array) kiradi.
- Meros olishni qo'llab-quvvatlaydi.
- Axirgi xotira yig'uvchi, manba turlaridagi ob'ektlar uchun xotira bo'shatishni boshqaradi.
// Qiymat turi misoli (struct)
struct Point
{
public int X;
public int Y;
}
// Manba turi misoli (class)
class Circle
{
public int Radius;
}
| Xususiyat | Qiymat turlari | Manba turlari |
|---|---|---|
| Saqlash joyi | Stack yoki qiymat turi nusxasi ichida | Heap |
| Uzatish/Belgilash | Qiymat nusxasi | Havola nusxasi |
| Meros olish | Yo'q | Ha |
| Xotira boshqaruvi | Avtomatik (stack) | Axirgi xotira yig'uvchi |