Junior — Middle
Kuo skiriasi nuorodų tipai nuo reikšmių tipų programavime?
sobes.tech AI
Atsakymas iš AI
C# kalboje duomenų tipai skirstomi į reikšmės tipus (value types) ir nuorodų tipus (reference types).
Reikšmės tipai saugo duomenis tiesiogiai. Priskiriant ar perduodant į metodą, kopijuojama pati reikšmė. Pavyzdžiai: int, double, struct, bool.
Nuorodų tipai saugo nuorodą į atminties sritį, kurioje yra duomenys. Priskiriant, kopijuojama nuoroda, ne duomenys, todėl keli kintamieji gali rodyti į tą patį objektą. Pavyzdžiai: class, string, array.
Pavyzdys:
int a = 5;
int b = a; // kopijuojama reikšmė 5
b = 10;
// a vis dar 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // kopijuojama nuoroda
p2.Name = "Bob";
// p1.Name dabar "Bob"
Pagrindinis skirtumas — duomenų saugojimo ir kopijavimo būdas: reikšmės tipai kopijuoja reikšmes, nuorodų tipai — nuorodas į objektus.