Sobes.tech
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"