Вопросы обработки строк уже обсуждались в главе 7, и поэтому не стоит повторяться. Вместо этого целесообразно дать краткий обзор реализации символьных строк в С#, прежде чем переходить к рассмотрению классаString.

Во всех языках программированиястрокапредставляет собой последовательность символов, но конкретная ее реализация отличается в разных языках. В некоторых языках программирования, например в C++, строки представляют собой массивы символов, тогда как в C# они являются объектами встроенного типа данныхstring.Следовательно,stringявляется ссылочным типом. Более того,string— это имя стандартного для среды .NET строкового типаSystem. String.Это означает, что в C# строке как объекту доступны все методы, свойства, поля и операторы, определенные в классеString.

После создания строки последовательность составляющих ее символов не может быть изменена. Благодаря этому ограничению строки реализуются в C# более эффективно. И хотя такое ограничение кажется на первый взгляд серьезным препятствием, на самом деле оно таковым не является. Когда требуется получить строку как разновидность уже существующей строки, достаточно создать новую строку, содержащую требующиеся изменения, и "отвергнуть" исходную строку, если она больше не нужна. А поскольку ненужные строковые объекты автоматически утилизируются средствами "сборки мусора'7, то беспокоиться о дальнейшей судьбе ''отвергнутых77строк не приходится. Следует, однако, подчеркнуть, что переменные ссылок на строки могут, безусловно, изменить объект, на который они ссылаются. Но сама последовательность символов в конкретном строковом объекте не подлежит изменению после его создания.

Для создания строк, которые нельзя изменить, в C# предусмотрен классStringBuilder,находящийся в пространстве именSystem. Text.Но на практике для этой цели чаще используется типstring,а не классStringBuilder.

Класс String

КлассStringопределен в пространстве именSystem.В нем реализуются следующие интерфейсы:IComparable, IComparable, ICloneable, IConvertible, IEnumerable, IEnumerableиIEquatable.Кроме того,String —герметичный класс, а это означает, что он не может наследоваться. В классеStringпредоставляются все необходимые функциональные возможности для обработки символьных строк в С#. Он служит основанием для встроенного в C# типаstringи является составной частью среды .NET Framework. В последующих разделах представлено подробное описание классаString.

Конструкторы класса String

Перейти на страницу:

Похожие книги