C# dilinde string sınıfının özellikleri nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde string sınıfının aşağıdaki temel özellikleri vardır:
-
Değiştirilemezlik (Immutability): Bir
stringnesnesi oluşturulduktan sonra içeriği değiştirilemez. Görünüşte dizgeyi değiştiren herhangi bir işlem (örneğin, birleştirme), aslında yeni birstringnesnesi oluşturur.string s1 = "Hello"; string s2 = s1 + " World"; // "Hello World" için yeni bir string nesnesi oluşturulur // s1 nesnesi hâlâ "Hello" içerirBu, dizgelerin çoklu iş parçacıklı ortamlarda güvenli olmasını sağlar ve
Dictionarygibi koleksiyonlarda anahtar olarak kullanımını kolaylaştırır. -
Referans Tipi (Reference Type): Dizgeler genellikle değer tipleri gibi davranır, operatör aşırı yüklemesi ve değer karşılaştırması sayesinde, ancak
stringbir referans tipidir.string a = "test"; string b = a; // b, heap'teki aynı "test" nesnesine referans eder string c = "test"; // Eğer "test" dizgesi zaten string havuzunda varsa, c de ona referans eder -
+operatörünün aşırı yüklenmesi:+operatörü dizgelerin birleştirilmesi için aşırı yüklenmiştir.string firstName = "John"; string lastName = "Doe"; string fullName = firstName + " " + lastName; // Dizgi birleştirme+kullanımıyla çoklu dizgi birleştirme, geçici nesnelerin oluşturulması nedeniyle verimsiz olabilir. Daha verimli dizgi birleştirmeleri içinStringBuilderkullanılması önerilir. -
Dizgi Havuzu (String Interning): .NET çalışma zamanı, kodda tanımlanan benzersiz dizgi literallerini saklayan bir mekanizma olan dizgi havuzuna sahiptir. Bir dizgi literali oluşturulduğunda, CLR zaten böyle bir dizginin havuzda olup olmadığını kontrol eder. Varsa, yeni nesne oluşturmadan mevcut nesneye referans döner.
string str1 = "hello"; // "hello" havuza eklenir (veya zaten varsa) string str2 = "hello"; // str2, str1 ile aynı nesneye referans eder Console.WriteLine(ReferenceEquals(str1, str2)); // True döndürürBu, bellek optimizasyonudur.
-
Geniş fonksiyon seti:
stringsınıfı, arama, değiştirme, biçimlendirme, büyük/küçük harfe dönüştürme ve daha fazlasını içeren zengin bir metod yelpazesi sağlar.string original = " Hello, World! "; string trimmed = original.Trim(); // Kenar boşluklarını kaldırır string upper = original.ToUpper(); // Büyük harfe dönüştürür bool contains = original.Contains("World"); // Alt dizgi içerip içermediğini kontrol eder -
IEnumerable<char>uygulaması: Dizi, temel olarak bir karakter koleksiyonudur veIEnumerable<char>arayüzünü uygular, bu da dizge içindeki karakterleri dolaşmaya ve LINQ kullanmaya olanak tanır.string text = "C#"; foreach (char c in text) { Console.WriteLine(c); }