Junior — Middle
Ar galite paaiškinti, kuo skiriasi nuorodų tipai nuo reikšmių tipų C# kalboje?
sobes.tech AI
Atsakymas iš AI
C# kalbant, duomenų tipai skirstomi į reikšmės tipus (value types) ir nuorodų tipus (reference types).
- Reikšmės tipai saugo duomenis tiesiogiai. Priskyrimo ar perdavimo į metodą metu, reikšmė kopijuojama. Pavyzdžiai:
int,double,struct. - Nuorodų tipai saugo nuorodą į atminties sritį, kurioje yra duomenys. Priskyrimo metu kopijuojama tik nuoroda, o ne patys duomenys. Pavyzdžiai:
class,string, masyvai.
Pavyzdys:
int a = 5;
int b = a; // b gauna kopiją iš reikšmės 5
b = 10; // a lieka 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 ir p1 nurodo tą patį objektą
p2.Name = "Bob"; // dabar p1.Name taip pat yra "Bob"
Taip, nuorodų tipų pakeitimai per vieną kintamąjį atsispindi visuose nuorodose, o reikšmės tipų — ne.