В данной программе использован массив строк digits
Как ни странно, содержимое объекта типа string
Следует, однако, подчеркнуть, что переменные ссылки на строки (т.е. объекты типа string
Для того чтобы стало понятнее, почему неизменяемые строки не являются помехой, воспользуемся еще одним методом обращения со строками: Substring()
Substring():
string Substring(int
где
Ниже приведена программа, в которой принцип постоянства строк демонстрируется на примере использования метода Substring().
// Применить метод Substring().
using System;
class SubStr {
static void Main() {
string orgstr = "В C# упрощается обращение со строками.";
// сформировать подстроку
string substr = orgstr.Substring(5, 20);
Console.WriteLine("orgstr: " + orgstr);
Console.WriteLine("substr: " + substr);
}
}
Вот к какому результату приводит выполнение этой программы.
orgstr: В C# упрощается обращение со строками,
substr: упрощается обращение
Как видите, исходная строка из переменной orgstr
substr
.И последнее замечание: несмотря на то, что постоянство строк обычно не является ни ограничением, ни помехой для программирования на С#, иногда оказывается полезно иметь возможность видоизменять строки. Для этой цели в С# имеется класс StringBuilder
System.Text
. Этот класс позволяет создавать строковые объекты, которые можно изменять. Но, как правило, в программировании на C# используется тип string
, а не класс StringBuilder
.Объекты типа string
switch.
Это единственный нецелочисленный тип данных, который допускается применять в операторе switch
. Благодаря такому применению строк в некоторых сложных ситуациях удается найти более простой выход из положения, чем может показаться на первый взгляд. Например, в приведенной ниже программе выводятся отдельные цифры, соответствующие словам "один", "два" и "три".// Продемонстрировать управление оператором switch посредством строк.
using System;
class StringSwitch {
static void Main() {
string[] strs = { "один", "два", "три", "два", "один" };
foreach(string s in strs) {
switch (s) {
case "один":
Console.Write(1);
break;
case "два":
Console.Write(2);
break;
case "три":
Console.Write(3);
break;
}
}
Console.WriteLine();
}
}
При выполнении этой программы получается следующий результат.
12321
ГЛАВА 8 Подробнее о методах и классах