Junior — Middle
C# dilində referans tipləri ilə dəyər tipləri arasındakı fərqi izah edə bilərsinizmi?
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, dəyər kopyalanır. Nümunələr:
int,double,struct. - İstinad tipləri məlumatların yerləşdiyi yaddaş sahəsinə istinad saxlayır. Təyin edilərkən, yalnız istinad kopyalanır, məlumatlar yox. Nümunələr:
class,string, massivlər.
Nümunə:
int a = 5;
int b = a; // b 5 dəyərinin nüsxəsini alır
b = 10; // a dəyişməz, hələ də 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 və p1 eyni obyektə istinad edir
p2.Name = "Bob"; // indi p1.Name də "Bob" olur
Beləliklə, istinad tiplərində dəyişikliklər bir dəyişən vasitəsilə bütün istinadlara əks olunur, dəyər tiplərində isə yox.