Добавить в цитаты Настройки чтения

Страница 24 из 502

Помимо описанной выше формы строкового литерала, можно также указать буквальный строковый литерал. Такой литерал начинается с символа @, после которого следует строка в кавычках. Содержимое строки в кавычках воспринимается без изменений и может быть расширено до двух и более строк. Это означает, что в буквальный строковый литерал можно включить символы новой строки, табуляции и прочие, не прибегая к управляющим последовательностям. Единственное исключение составляют двойные кавычки ("), для указания которых необходимо использовать две двойные кавычки подряд (" "). В приведенном ниже примере программы демонстрируется применение буквальных строковых литералов.

<b>// Продемонстрировать применение буквальных строковых литералов,</b>

<b>using System;</b>

<b>class Verbatim {    </b>

<b>static void Main() {</b>

<b>    Console.WriteLine(@&quot;Это буквальный </b>

<b>строковый литерал, </b>

<b>занимающий несколько строк.</b>

<b>&quot;) ;</b>

<b>    Console.WriteLine(@&quot;А это вывод с табуляцией:</b>

<b>1    2    3    4</b>

<b>5    6    7    8</b>

<b>&quot;);</b>

<b>    Console.WriteLine(@&quot;Отзыв программиста: &quot;&quot;Мне нравится С#.&quot;&quot;&quot;);</b>

<b>  }</b>

<b>}</b>

Результат выполнения этой программы приведен ниже.

<b>Это буквальный </b>

<b>строковый литерал, </b>

<b>занимающий несколько строк.</b>

<b>А это вывод с-табуляцией:</b>

<b>1    2    3    4</b>

<b>5    6    7    8</b>

<b>Отзыв программиста: &quot;Мне нравится С#.&quot;</b>

Следует особо подчеркнуть, что буквальные строковые литералы выводятся в том же виде, в каком они введены в исходном тексте программы.

Преимущество буквальных строковых литералов заключается в том, что они позволяют указать в программе выводимый результат именно так, как он должен выглядеть на экране. Но если выводится несколько строк, то переход на новую строку может нарушить порядок набора исходного текста программы с отступами. Именно по этой причине в примерах программ, приведенных в этой книге, применение буквальных строковых литералов ограничено. Тем не менее они приносят немало замечательных выгод во многих случаях, когда требуется форматирование выводимых результатов.

И последнее замечание: не путайте строки с символами. Символьный литерал, например 'X', обозначает одиночную букву типа char. А строка, состоящая из одного символа, например "X", по-прежнему остается текстовой строкой.

Более подробное рассмотрение переменных

Переменные объявляются с помощью оператора следующей формы:

<b>тип имя_переменной;</b>

где тип — это тип данных, хранящихся в переменной; а имя_переменной — это ее имя. Объявить можно переменную любого действительного типа, в том числе и описанных выше типов значений. Важно подчеркнуть, что возможности переменной определяются ее типом. Например, переменную типа bool нельзя использовать для хранения числовых значений с плавающей точкой. Кроме того, тип переменной нельзя изменять в течение срока ее существования. В частности, переменную типа int нельзя преобразовать в переменную типа char.

Все переменные в C# должны быть объявлены до их применения. Это нужно для того, чтобы уведомить компилятор о типе данных, хранящихся в переменной, прежде чем он попытается правильно скомпилировать любой оператор, в котором используется переменная. Это позволяет также осуществлять строгий контроль типов в С#.

В C# определено несколько различных видов переменных. Так, в предыдущих примерах программ использовались переменные, называемые локальными, поскольку они объявляются внутри метода.

Задать значение переменной можно, в частности, с помощью оператора присваивания, как было не раз продемонстрировано ранее. Кроме того, задать начальное значение переменной можно при ее объявлении. Для этого после имени переменной указывается знак равенства (=) и присваиваемое значение. Ниже приведена общая форма инициализации переменной:

<b>тип имя_переменной = значение;</b>

где значение — это конкретное значение, задаваемое при создании переменной. Оно должно соответствовать указанному типу переменной.

Ниже приведены некоторые примеры инициализации переменных.

<b>int count = 10; //    задать начальное значение 10 переменной count.</b>

<b>char ch = 'X';  // инициализировать переменную ch буквенным значением X.</b>

<b>float f = 1.2F  //    переменная    f    инициализируется    числовым    значением 1,2.</b>

Если две или более переменные одного и того же типа объявляются списком, разделяемым запятыми, то этим переменным можно задать, например, начальное значение.

int a, b=8, с=19, d; // инициализировать переменные b и с

В данном примере инициализируются только переменные b и с.

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

<b>// Продемонстрировать динамическую инициализацию.</b>

<b>using System;</b>

<b>class Dynlnit {</b>

<b>  static void Main() {</b>

<b>    // Длина сторон прямоугольного треугольника. </b>

<b>    double s1 = 4.0; </b>