🔍 C# da Value types va Reference types farqi
C# da barcha ma’lumotlar ikki katta toifaga bo‘linadi:
- Value types (qiymat turlari)
- 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
🔹 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
Top comments (0)