Читать в оригинале

<< Предыдущая Оглавление Следующая >>


8.3. Класс String

Основным типом при работе со строками является тип string, задающий строки переменной длины. Класс String в языке C# относится к ссылочным типам. Над строками - объектами этого класса - определен широкий набор операций, соответствующий современному представлению о том, как должен быть устроен строковый тип.

8.3.1. Объявление строк. Конструкторы класса String

Объекты класса String объявляются как все прочие объекты простых типов - с явной или отложенной инициализацией, с явным или неявным вызовом конструктора класса. Чаще всего, при объявлении строковой переменной конструктор явно не вызывается, а инициализация задается строковой константой. Но у класса String достаточно много конструкторов. Они позволяют сконструировать строку из:

- символа, повторенного заданное число раз;

- массива символов char[ ];

- части массива символов.

Некоторым конструкторам в качестве параметра инициализации можно передать строку, заданную типом char*. Но все это небезопасно, и подобные примеры приводиться и обсуждаться не будут. Приведем примеры объявления строк с вызовом разных конструкторов:

public void TestDeclStrings() {
          //конструкторы
          string world = "Мир";
          //string s1 = new string("s1");
          //string s2 = new string();
          string sssss = new string('s', 5);
          char[ ] yes = "Yes".ToCharArray();
          string stryes = new string(yes);
          string strye = new string(yes, 0, 2);
          Console.WriteLine("world = {0}; sssss={1}; stryes={2};" + " strye= {3}", world, sssss, stryes, strye);
}

Объект world создан без явного вызова конструктора, а объекты sssss, stryes, strye созданы разными конструкторами класса String.

Отметим, что не допускается явный вызов конструктора по умолчанию - конструктора без параметров. Нет также конструктора, которому в качестве аргумента можно передать обычную строковую константу. Соответствующие операторы в тексте закомментированы.



<< Предыдущая Оглавление Следующая >>