DEV Community

Elshod Ibodullayev
Elshod Ibodullayev

Posted on

C# da Value types va Reference types farqi

🔍 C# da Value types va Reference types farqi

C# da barcha ma’lumotlar ikki katta toifaga bo‘linadi:

  1. Value types (qiymat turlari)
  2. Reference types (havola turlari)

Ularning farqi — xotirada qanday saqlanishi va qanday nusxalanishida.


🔹 Value Types

➡️ Stack xotirada saqlanadi.

➡️ Obyektni boshqa o‘zgaruvchiga tenglashtirsak, qiymat nusxalanadi.

➡️ Mustaqil bo‘ladi, bittasi o‘zgarsa, boshqasiga ta’sir qilmaydi.

Misollar: int, double, bool, struct, enum

int a = 10;
int b = a; // nusxa olindi
b = 20;

Console.WriteLine(a); // 10
Console.WriteLine(b); // 20
Enter fullscreen mode Exit fullscreen mode

🔹 Reference Types

➡️ Heap xotirada saqlanadi.
➡️ Obyektni boshqa o‘zgaruvchiga tenglashtirsak, havola (pointer) nusxalanadi.
➡️ Ikkalasi ham bitta obyektni ko‘rsatadi, shuning uchun biri o‘zgarsa, boshqasiga ham ta’sir qiladi.
Misollar: class, object, string, array, interface

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

Person p1 = new Person { Name = "Ali" };
Person p2 = p1; // havola nusxalandi

p2.Name = "Vali";

Console.WriteLine(p1.Name); // Vali
Console.WriteLine(p2.Name); // Vali
Enter fullscreen mode Exit fullscreen mode

ElshodDev GitHub Profilim
Telegram channel

Top comments (0)