Хусусиятҳои синфи string дар C# чист?
sobes.tech AI
Ҷавоб аз AI
Класи string дар C# дорои хусусиятҳои калидӣ мебошанд:
-
Нестанишавӣ (Immutability): Пас аз сохтани объект
string, мазмунаш тағир дода намешавад. Ҳар як амалияе, ки ҳамчун тағир додани сатр ба назар мерасад (масалан, пайваст кардан), дар асл як объектstringнав месозад.string s1 = "Hello"; string s2 = s1 + " World"; // Объекти нав барои "Hello World" сохта мешавад // Объекти s1 ҳанӯз ҳам "Hello"-ро дорадИн сатрҳоро барои истифода дар муҳитҳои бисёрсоҳавӣ бехатар мекунад ва истифодаи онҳоро ҳамчун калидҳо дар коллектсияҳо, масалан,
Dictionary, осон мекунад. -
Навъе ишоракунӣ (Reference Type): Гарчанде ки сатрҳо одатан ҳамчун навъҳои арзишӣ дар назар гирифта мешаванд, бо сабаби баргардонидани операторҳо ва муқоиса ба арзиш,
stringнавъи ишоракунӣ мебошад.string a = "test"; string b = a; // b ба ҳамон объект "test" дар куча ишора мекунад string c = "test"; // Агар сатр "test" аллакай дар пули сатрҳо бошад, c низ ба он ишора мекунад -
Баргардонидани оператори
+: Оператор+барои пайваст кардани сатрҳо баргардонида шудааст.string firstName = "John"; string lastName = "Doe"; string fullName = firstName + " " + lastName; // Пайваст кардани сатрҳоПайвасткунии бисёрмоддӣ бо
+метавонад самаранок набошад, зеро объектҳои муваққатӣ месозад. Барои пайваст кардани миқдори зиёди сатрҳо, тавсия дода мешавад, киStringBuilderистифода шавад. -
Пули сатрҳо (String Interning): муҳити иҷрои .NET механизми пули сатрҳоро дорад, ки литерҳои беназирро, ки дар код муайян шудаанд, нигоҳ медорад. Вақте ки литер сатр сохта мешавад, CLR санҷида, ки оё чунин сатр аллакай дар пул ҳаст ё не. Агар бошад, ба ҷои сохтани объект нав, ба он ишора мекунад.
string str1 = "hello"; // "hello" ба пул илова мешавад (ё аллакай ҳаст) string str2 = "hello"; // str2 ба ҳамон объект дар пул ишора мекунад, ки str1 Console.WriteLine(ReferenceEquals(str1, str2)); // True-ро мебарорадИн оптимизатсияи хотира мебошад.
-
Ҳамҷоя кардани методҳо: Класс
stringмаҷмӯи бойи методҳоро барои кор бо сатрҳо пешниҳод мекунад, аз ҷумла ҷустуҷӯ, ивазкунӣ, формат, табдил додани ҳарфҳо ва бисёр чизҳои дигар.string original = " Hello, World! "; string trimmed = original.Trim(); // Тазал кардани ҷойҳо аз канорҳо string upper = original.ToUpper(); // Табдил додани ҳарфҳо ба ҳарфҳои калон bool contains = original.Contains("World"); // Санҷиши мавҷудияти зерсатр -
Иҷрои
IEnumerable<char>: Сатр дар асл маҷмӯи аломатҳо мебошад ва интерфейсиIEnumerable<char>-ро иҷро мекунад, ки имкон медиҳад аломатҳоро дар сатр гузаронидан ва LINQ-ро истифода бурдан.string text = "C#"; foreach (char c in text) { Console.WriteLine(c); }