Упражнение. Объединение строк с помощью интерполяции строк

Завершено

Хотя конкатенация строк проста и удобна, интерполяция строк популярнее в ситуациях, когда необходимо объединить множество строковых литералов и переменных в одно отформатированное сообщение.

Что такое интерполяция строк?

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

Иными словами, вместо написания следующей строки кода:

string message = greeting + " " + firstName + "!";

Можно написать более краткую строку кода:

string message = $"{greeting} {firstName}!";

В этом простом примере вы экономите несколько нажатий клавиш. Можно представить, насколько более краткой будет интерполяция строк в более сложных операциях. Более того, многие считают синтаксис интерполяции строк более понятным и удобочитаемым.

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

Использование интерполяции строк для объединения литеральной строки и значения переменной

Чтобы выполнить интерполяцию двух строк вместе, создайте литеральную строку и добавьте перед строкой символ $. Литеральная строка должна содержать по крайней мере один набор фигурных скобок {}, и внутри этих символов необходимо указать имя переменной.

  1. Выделите весь код в редакторе .NET и нажмите клавишу DELETE или BACKSPACE, чтобы удалить его.

  2. Введите следующий код в редакторе .NET:

    string firstName = "Bob";
    string message = $"Hello {firstName}!";
    Console.WriteLine(message);
    
  3. Теперь выполните код. В консоли вывода появятся следующие результаты:

    Hello Bob!
    

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

В одной строке кода можно выполнять несколько операций интерполяции.

  1. Измените код, который вы написали ранее, следующим образом:

    int version = 11;
    string updateText = "Update to Windows";
    string message = $"{updateText} {version}";
    Console.WriteLine(message);
    
  2. Теперь выполните код. В консоли вывода появятся следующие результаты:

    Update to Windows 11
    

Избегайте промежуточных переменных

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

  1. Измените код, который вы написали ранее, следующим образом:

    int version = 11;
    string updateText = "Update to Windows";
    Console.WriteLine($"{updateText} {version}!");
    
  2. Теперь выполните код. Результат в выходной консоли должен совпадать даже при упрощении кода:

    Update to Windows 11!
    

Объединение подробных литералов и интерполяции строк

Предположим, что в шаблоне необходимо использовать буквальный литерал. Можно одновременно использовать символ @ для префикса буквального литерала и $ — символ интерполяции строки.

  1. Удалите код из предыдущих шагов и введите следующий код в редактор .NET:

    string projectName = "First-Project";
    Console.WriteLine($@"C:\Output\{projectName}\Data");
    
  2. После выполнения кода вы увидите приведенный ниже результат.

    C:\Output\First-Project\Data
    

    В этом примере $ символ позволяет ссылаться на projectName переменную внутри фигурных скобок, а символ @ позволяет использовать неискаченный \ символ.

Кратко

Вот что вы узнали о интерполяции строк до сих пор:

  • Интерполяция строк улучшает конкатенацию строк за счет уменьшения количества символов, необходимых в некоторых ситуациях.
  • Можно сочетать интерполяцию строк и буквальные литералы, сочетая их символы и используя их в качестве префикса для шаблона строки.