Переменные string могут соединяться вместе для построения строк большего размера с помощью операции + языка С#. Как вам должно быть известно, такой прием формально называется конкатенацией строк. Рассмотрим следующую вспомогательную функцию:

static void StringConcatenation()

{

  Console.WriteLine("=> String concatenation:");

  string s1 = "Programming the ";

  string s2 = "PsychoDrill (PTP)";

  string s3 = s1 + s2;

  Console.WriteLine(s3);

  Console.WriteLine();

}

Интересно отметить, что при обработке символа + компилятор C# выпускает вызов статического метода String.Concat(). В результате конкатенацию строк можно также выполнять, вызывая метод String.Concat() напрямую (хотя фактически это не дает никаких преимуществ, а лишь увеличивает объем набираемого кода):

static void StringConcatenation()

{

  Console.WriteLine("=> String concatenation:");

  string s1 = "Programming the ";

  string s2 = "PsychoDrill (PTP)";

  string s3 = String.Concat(s1, s2);

  Console.WriteLine(s3);

  Console.WriteLine();

}

<p id="AutBody_Root105">Использование управляющих последовательностей</p>

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

Например, чтобы вывести строку, которая содержит символ табуляции после каждого слова, можно задействовать управляющую последовательность \t. Или предположим, что нужно создать один строковый литерал с символами кавычек внутри, второй — с определением пути к каталогу и третий — со вставкой трех пустых строк после вывода символьных данных. Для этого можно применять управляющие последовательности \", \\ и \n. Кроме того, ниже приведен еще один пример, в котором для привлечения внимания каждый строковый литерал сопровождается звуковым сигналом:

static void EscapeChars()

{

  Console.WriteLine("=> Escape characters:\a");

  string strWithTabs = "Model\tColor\tSpeed\tPet Name\a ";

  Console.WriteLine(strWithTabs);

  Console.WriteLine("Everyone loves \"Hello World\"\a ");

  Console.WriteLine("C:\\MyApp\\bin\\Debug\a ");

  // Добавить четыре пустых строки и снова выдать звуковой сигнал.

  Console.WriteLine("All finished.\n\n\n\a ");

  Console.WriteLine();

}

<p id="AutBody_Root106">Выполнение интерполяции строк</p>

Синтаксис с фигурными скобками, продемонстрированный ранее в главе ({0}, {1} и т.д.), существовал в рамках платформы .NET еще со времен версии 1.0. Начиная с выхода версии C# 6, при построении строковых литералов, содержащих заполнители для переменных, программисты на C# могут использовать альтернативный синтаксис. Формально он называется интерполяцией строк. Несмотря на то что выходные данные операции идентичны выходным данным, получаемым с помощью традиционного синтаксиса форматирования строк, новый подход позволяет напрямую внедрять сами переменные, а не помещать их в список с разделителями-запятыми.

Взгляните на показанный ниже дополнительный метод в нашем классе Program(StringInterpolation()), который строит переменную типа string с применением обоих подходов:

static void StringInterpolation()

{

    Console.WriteLine("=> String interpolation:\a");

    // Некоторые локальные переменные будут включены в крупную строку.

    int age = 4;

    string name = "Soren";

    // Использование синтаксиса с фигурными скобками.

    string greeting = string.Format("Hello {0} you are {1} years old.",

                                     name, age);

    Console.WriteLine(greeting);

    // Использование интерполяции строк.

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

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