ВУЗ:
Составители:
Рубрика:
123
Начнем с присваивания, имеющего важную особенность. Поскольку
string – это ссылочный тип, то в результате присваивания создается ссылка на
константную строку, хранимую в «куче». С одной и той же строковой
константой в «куче» может быть связано несколько переменных строкового
типа. Но эти переменные не являются псевдонимами – разными именами
одного и того же объекта. Дело в том, что строковые константы в «куче» не
изменяются (о неизменяемости строкового типа будем далее говорить
подробно), поэтому, когда одна из переменных получает новое значение, она
связывается с новым константным объектом в «куче». Остальные переменные
сохраняют свои связи. Для программиста это означает, что семантика
присваивания строк аналогична семантике значимого присваивания.
В отличие от других ссылочных типов операции, проверяющие
эквивалентность, сравнивают значения строк, а не ссылки. Эти операции
выполняются как над значимыми типами.
Бинарная операция «+» сцепляет две строки, приписывая вторую строку к
хвосту первой.
Возможность взятия индекса при работе со строками отражает тот
приятный факт, что строку можно рассматривать как массив и получать без
труда каждый ее символ. Каждый символ строки имеет тип char, доступный
только для чтения, но не для записи.
Вот пример, в котором над строками выполняются данные операции:
public void TestOpers()
{
//операции над строками
string s1 = "ABC", s2 = "CDE";
string s3 = s1 + s2;
bool b1 = (s1 == s2);
char ch1 = s1[0], ch2 = s2[0];
Console.WriteLine("s1={0}, s2={1}, b1={2}," +
"ch1={3}, ch2={4}", s1, s2, b1, ch1, ch2);
s2 = s1;
b1 = (s1 != s2);
ch2 = s2[0];
Console.WriteLine("s1={0}, s2={1}, b1={2}," +
"ch1={3}, ch2={4}", s1, s2, b1, ch1, ch2);
//Неизменяемые значения
s1 = "Zenon";
//s1[0]='L';
}
Статические методы класса String
Сводка статических методов класса String приводится в таблице 6.
Страницы
- « первая
- ‹ предыдущая
- …
- 117
- 118
- 119
- 120
- 121
- …
- следующая ›
- последняя »