Лабораторный практикум по информатике


Более эффективная работа со строками



бет32/83
Дата06.01.2022
өлшемі1.1 Mb.
#15674
түріПрактикум
1   ...   28   29   30   31   32   33   34   35   ...   83

Более эффективная работа со строками


Строки типа string представляют собой неизменяемые объекты: после того, как строка инициализирована, изменить ее уже нельзя. Рас- смотрим для примера следующий код:

string s = "Hello, "; s += "world!";


Здесь компилятор создает в памяти строковый объект и инициали- зирует его строкой «Hello, », а затем создает другой строковый объект и инициализирует его значением первого объекта и новой строкой

«world!», а затем заменяет значение переменной s на новый объект. В результате строка s содержит именно то, что хотел программист, од- нако в памяти остается и изначальный объект со строкой «Hello, ». Ко- нечно, со временем сборщик мусора уничтожит этот бесхозный объект, однако если в программе идет интенсивная работа со строками, то таких бесхозных объектов может оказаться очень много. Как правило, это не- гативно сказывается на производительности программы и объеме по- требляемой ею памяти.

Чтобы компилятор не создавал каждый раз новый строковый объ- ект, разработчики языка C# ввели другой строковый класс: StringBuilder. Приведенный выше пример с использованием этого класса будет выглядеть следующим образом:
StringBuilder s = new StringBuilder("Hello, "); s.Append("world!");
Конечно, визуально этот код выглядит более сложным, зато при ак- тивном использовании строк в программе он будет гораздо эффектив- нее. Помимо добавления строки к существующему объекту (Append) класс StringBuilder имеет еще ряд полезных методов:


Если нужно преобразовать объект StringBuilder в обычную стро- ку, то для этого можно использовать метод ToString():
StringBuilder s = new StringBuilder("Яблоко"); string a = s.ToString();



    1. Достарыңызбен бөлісу:
1   ...   28   29   30   31   32   33   34   35   ...   83




©emirsaba.org 2022
әкімшілігінің қараңыз

    Басты бет