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)