DEV Community

umida5
umida5

Posted on

Value Type and Reference Type

Value type (Qiymat turlari)
Qiymat turlari to'g'ridan-to'g'ri qiymatlarni saqlaydi. Ular stack xotirasida joylashgan va o'zgaruvchilarga qiymatlarni ko'chirishda yangi nusxalar yaratiladi. Misollar:

  • int
  • float
  • double
  • char
  • struct

Value Type xususiyatlari:

  • Stack xotirasida saqlanadi.
  • Har bir o'zgaruvchi o'z qiymatini mustaqil saqlaydi.
  • Bir o'zgaruvchini boshqasiga o'zlashtirganda qiymat nusxasi o'rnatiladi.
  • Null qiymat qabul qilmaydi (agar nullable bo'lmasa).
  • Turli qiymat o'zgarishlari boshqa o'zgaruvchilarga ta'sir qilmaydi.
int a = 10;
int b = a; // b endi 10, a ga bog'liq emas
Enter fullscreen mode Exit fullscreen mode

Havola turlari (Reference Types)
Havola turlari ma'lumotlar haqidagi ma'lumotlarni saqlaydi va ularni heap xotirasida joylashtiradi. O'zgaruvchilar havolalarni saqlaydi, shuning uchun bir o'zgaruvchini o'zgartirish boshqa o'zgaruvchilarga ham ta'sir qilishi mumkin. Misollar:

  • class
  • string
  • array
  • delegate
class Person 
{

    public string Name;
}

Person p1 = new Person();
p1.Name = "Ali";

Person p2 = p1; // p2 ham p1 ga bog'langan
p2.Name = "Vali"; // endi p1.Name ham "Vali" bo'ladi

Enter fullscreen mode Exit fullscreen mode

Top comments (0)