Junior — Middle
Vai Jūs varat izskaidrot, kā atšķiras atsauces tipi no vērtību tipiem C# valodā?
sobes.tech AI
Atbilde no AI
C# valodu tipos ir sadalīti uz vērtības tipiem (value types) un atsauces tipiem (reference types).
- Vērtības tipi tieši glabā datus. Pie piešķiršanas vai nodošanas metodei, vērtība tiek kopēta. Piemēri:
int,double,struct. - Atsauces tipi glabā atsauci uz atmiņas apgabalu, kur atrodas dati. Pie piešķiršanas, tiek kopēta tikai atsauce, ne dati. Piemēri:
class,string, masīvi.
Piemērs:
int a = 5;
int b = a; // b saņem kopiju no vērtības 5
b = 10; // a paliek 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 un p1 norāda uz to pašu objektu
p2.Name = "Bob"; // tagad p1.Name arī ir "Bob"
Tādējādi, atsauces tipu izmaiņas caur vienu mainīgo ietekmē visas atsauces, bet vērtības tipu — nē.