Junior — Middle
Можете ли да обясните как се различават референтните типове от стойностните типове в езика C#?
sobes.tech AI
Отговор от AI
В C# типовете данни се делят на стойностни (value types) и референтни (reference types).
- Стойностни типове съхраняват данните директно. При присвояване или предаване към метод, стойността се копира. Примери:
int,double,struct. - Референтни типове съхраняват препратка към областта в паметта, където се намират данните. При присвояване се копира само препратката, не и самите данни. Примери:
class,string, масиви.
Пример:
int a = 5;
int b = a; // b получава копие на стойността 5
b = 10; // a остава 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 и p1 сочат към един и същи обект
p2.Name = "Bob"; // сега p1.Name също е "Bob"
По този начин, промените в референтните типове чрез една променлива се отразяват на всички референции, а при стойностните типове — не.