Junior — Middle
Бағалы және сілтемелі объектілер арасындағы айырмашылық неде бағдарламалауда?
sobes.tech AI
AI-дан жауап
C# тілінде объектілер мәнді (value types) және сілтемелі (reference types) болып бөлінеді.
- Мәнді типтер деректерді тікелей сақтайды. Мысалдар:
int,struct,bool. Тағайындау немесе әдіске беру кезінде мән көшіріледі. - Сілтемелі типтер деректер орналасқан жады аймағына сілтемені сақтайды. Мысалдар:
class,string, массивтер. Тағайындау кезінде сілтеме көшіріледі, ал объекті емес.
Негізгі айырмашылық — мәнді типтің өзгерістері басқа көшірмелерге әсер етпейді, ал сілтеме арқылы өзгерістер барлық сілтемелерге әсер етеді.
Мысал:
int a = 5;
int b = a; // мән көшіріледі
b = 10;
// a == 5, b == 10
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // сілтеме көшіріледі
p2.Name = "Bob";
// p1.Name == "Bob"