В C# поддерживается еще один тип литералов — строковый. Строковый литерал представляет собой набор символов, заключенных в двойные кавычки. Например, следующий фрагмент кода:
"это тест"
представляет собой текстовую строку. Образцы подобных строк не раз встречались в приведенных выше примерах программ.
Помимо обычных символов, строковый литерал может содержать одну или несколько управляющих последовательностей символов, о которых речь шла выше. Рассмотрим для примера программу, в которой используются управляющие последовательности \n
и \t
.
// Продемонстрировать применение управляющих
// последовательностей символов в строковых литералах.
using System;
class StrDemo {
static void Main() {
Console.WriteLine("Первая строка\nВторая строка\nТретья строка");
Console.WriteLine("Один\nДва\nТри");
Console.WriteLine("Четыре\tПять\tШесть");
// Вставить кавычки.
Console.WriteLine(@""3ачем?", спросил он.");
}
}
Результат выполнения этой программы приведен ниже.
Первая строка
Вторая строка
Третья строка
Один
Два
Три
Четыре Пять Шесть
"Зачем?", спросил он.
В приведенном выше примере программы обратите внимание на то, что для перехода на новую строку используется управляющая последовательность \n
. Для вывода нескольких строк совсем не обязательно вызывать метод WriteLine()
несколько раз — достаточно вставить управляющую последовательность \n
в тех местах удлиненной текстовой строки (или строкового литерала), где должен происходить переход на новую строку. Обратите также внимание на то, как в текстовой строке формируется знак кавычек.
Помимо описанной выше формы строкового литерала, можно также указать буквальный строковый литерал. Такой литерал начинается с символа @
, после которого следует строка в кавычках. Содержимое строки в кавычках воспринимается без изменений и может быть расширено до двух и более строк. Это означает, что в буквальный строковый литерал можно включить символы новой строки, табуляции и прочие, не прибегая к управляющим последовательностям. Единственное исключение составляют двойные кавычки ("
), для указания которых необходимо использовать две двойные кавычки подряд (""
). В приведенном ниже примере программы демонстрируется применение буквальных строковых литералов.
// Продемонстрировать применение буквальных строковых литералов,
using System;
class Verbatim {
static void Main() {
Console.WriteLine(@"Это буквальный
строковый литерал,
занимающий несколько строк.
");
Console.WriteLine(@"А это вывод с табуляцией:
1 2 3 4
5 6 7 8
");
Console.WriteLine(@"Отзыв программиста: ""Мне нравится С#.""");
}
}
Результат выполнения этой программы приведен ниже.
Это буквальный
строковый литерал,
занимающий несколько строк.
А это вывод с табуляцией
1 2 3 4
5 6 7 8
Отзыв программиста: "Мне нравится С#."
Следует особо подчеркнуть, что буквальные строковые литералы выводятся в том же виде, в каком они введены в исходном тексте программы.
Преимущество буквальных строковых литералов заключается в том, что они позволяют указать в программе выводимый результат именно так, как он должен выглядеть на экране. Но если выводится несколько строк, то переход на новую строку может нарушить порядок набора исходного текста программы с отступами. Именно по этой причине в примерах программ, приведенных в этом курсе, применение буквальных строковых литералов ограничено. Тем не менее они приносят немало замечательных выгод во многих случаях, когда требуется форматирование выводимых результатов.
И последнее замечание: не путайте строки с символами. Символьный литерал, например 'X'
, обозначает одиночную букву типа char
. А строка, состоящая из одного символа, например "X"
, по-прежнему остается текстовой строкой.
Управляющие последовательности символов | Более подробное рассмотрение переменных |