Sobes.tech
Junior — Middle

Proqramlaşdırmada istinad növü ilə dəyər növü arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində məlumat tipləri dəyər tipləri (value types) və istinad tipləri (reference types) olaraq bölünür.

Dəyər tipləri məlumatları birbaşa saxlayır. Təyin və ya metoda ötürülərkən, öz dəyəri kopyalanır. Nümunələr: int, double, struct, bool.

İstinad tipləri məlumatların yerləşdiyi yaddaş sahəsinə istinad saxlayır. Təyin edilərkən, istinad kopyalanır, məlumatlar yox, ona görə də bir neçə dəyişən eyni obyektə işarə edə bilər. Nümunələr: class, string, array.

Nümunə:

int a = 5;
int b = a; // 5 dəyəri kopyalanır
b = 10;
// a hələ də 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // istinad kopyalanır
p2.Name = "Bob";
// p1.Name indi "Bob"

Buna görə də, əsas fərq məlumatların necə saxlanması və kopyalanmasıdır: dəyər tipləri dəyərləri kopyalayır, istinad tipləri obyektlərə istinadları kopyalayır.