И последнее замечание: несмотря на то, что постоянство строк обычно не является ни ограничением, ни помехой для программирования на С#, иногда оказывается полезно иметь возможность видоизменять строки. Для этой цели в С# имеется классStringBuilder,который определен в пространстве именSystem.Text.Этот класс позволяет создавать строковые объекты, которые можно изменять. Но, как правило, в программировании на C# исгкмьзуется типstring,а не классStringBuilder.

Применение строк в операторах switch

Объекты типа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 Подробнее о методах и классах

Вданной главе возобновляется рассмотрение классов и методов. Оно начинается с пояснения механизма управления доступом к членам класса. А затем обсуждаются такие вопросы, как передача и возврат объектов, перегрузка методов, различные формы метода Main (), рекурсия и применение ключевого слова static.

Управление доступом к членам класса

Поддержка свойства инкапсуляции в классе дает два главных преимущества. Во-первых, класс связывает данные с кодом. Это преимущество использовалось в предыдущих примерах программ, начиная с главы 6. И во-вторых, класс предоставляет средства для управления доступом к его членам. Именно эта, вторая преимущественная особенность и будет рассмотрена ниже.

В языке С#, по существу, имеются два типа членов класса: открытые и закрытые, хотя в действительности дело обстоит немного сложнее. Доступ к открытому члену свободно осуществляется из кода, определенного за пределами класса. Именно этот тип члена класса использовался в рассматривавшихся до сих пор примерах программ. А закрытый член класса доступен только методам, определенным в самом классе. С помощью закрытых членов и организуется управление доступом.

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

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