Материал предоставлен https://it.rfei.ru

Строковые литералы

В 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", по-прежнему остается текстовой строкой.

Управляющие последовательности символовБолее подробное рассмотрение переменных