C# dilinde String sınıfı diğer veri tiplerinden nasıl farklıdır?
sobes.tech yapay zeka
AI'dan gelen yanıt
C#'ta, String sınıfı, çoğu diğer veri tipinden farklı olarak, referans tipi olmasına rağmen, değiştirilemez (immutable) bir nesne gibi davranır.
Ana farklar:
-
Değiştirilemezlik: Bir dize oluşturulduktan sonra içeriği değiştirilemez. Dizeyi değiştirmeye benzeyen herhangi bir işlem (örneğin, birleştirme), aslında yeni bir String nesnesi oluşturur.
-
Referans tipi: String bir sınıftır, yapı değildir, bu nedenle string türündeki değişkenler bellekteki nesneye bir referans tutar.
-
Optimizasyonlar: Değiştirilemezlik sayesinde, dizeler string havuzunda (interning) kullanılabilir, bu da bellek tasarrufu sağlar.
-
Çöp Toplama: Dizeler nesne olduğu için, çöp toplayıcı tarafından yönetilirler, bu da bellek yönetimini kolaylaştırır.
Örnek:
string a = "hello";
string b = a;
a = a + " world"; // Yeni bir dize nesnesi oluşturulur
// b "hello" olarak kalır, a ise "hello world"
Bu şekilde, referans tipi olmalarına rağmen, dizeler değiştirilemezlik açısından değer gibi davranır, bu da metinle çalışırken güvenlik ve öngörülebilirlik sağlar.