C#-də String sinfi digər məlumat tiplərindən necə fərqlənir?
sobes.tech Süni İntellekt
AI-dan cavab
C# dilində String sinfi digər çoxsaylı məlumat tiplərindən fərqli olaraq, referans tipidir, lakin dəyişməz (immutable) obyekt kimi davranır.
Əsas fərqlər:
-
Dəyişməzlik: Bir sətir yaradıldıqdan sonra onun məzmunu dəyişdirilə bilməz. Sətiri dəyişdirməyə bənzəyən hər hansı əməliyyat (məsələn, birləşdirmə) əslində yeni bir String obyekti yaradır.
-
Referans tipi: String bir sinifdir, struktur deyil, ona görə də string tipli dəyişənlər yaddaşdakı obyektə istinad edir.
-
Optimizasiyalar: Dəyişməzlik sayəsində, sətirlər string hovuzunda (interning) istifadə oluna bilər, bu yaddaşdan qənaət edir.
-
Tullantıların toplanması: Sətirlər obyektlər olduğundan, onlar tullantıların toplanıcısı tərəfindən idarə olunur, bu yaddaş idarəsini sadələşdirir.
Nümunə:
string a = "hello";
string b = a;
a = a + " world"; // Yeni bir sətir obyekti yaradılır
// b "hello" olaraq qalır, a isə "hello world" olur
Bu şəkildə, referans tipinə sahib olmalarına baxmayaraq, sətirlər dəyişməzlik baxımından dəyərlər kimi davranır, bu da mətnlə işləyərkən təhlükəsizlik və proqnozlaşdırma təmin edir.