Упражнение. Объединение строк с помощью интерполяции строк
Хотя объединение строк является простым и удобным, интерполяция строк растет в популярности в ситуациях, когда необходимо объединить много литеральных строк и переменных в одно отформатированное сообщение.
Что такое интерполяция строк?
Интерполяция строк объединяет несколько значений в одну литеральную строку с помощью "шаблона" и одного или нескольких выражений интерполяции.
Выражение интерполяции указывается символом открывающей и закрывающей фигурной скобки{ }. Можно поместить любое выражение C#, возвращающее значение внутри фигурных скобок. Литеральная строка становится шаблоном при префиксе символа $ .
Другими словами, вместо написания следующей строки кода:
string message = greeting + " " + firstName + "!";
Вместо этого можно написать более краткую строку кода:
string message = $"{greeting} {firstName}!";
В этом простом примере вы сохраняете несколько нажатий клавиш. Вы можете представить, насколько более краткой может быть интерполяция строк в сложных операциях. Кроме того, многие считают, что синтаксис интерполяции строк более чист и легче для восприятия.
В следующем упражнении вы перезаписываете предыдущие сообщения с помощью интерполяции строк.
Использование интерполяции строк для объединения литеральной строки и значения переменной
Чтобы интерполировать две строки вместе, создайте литеральную строку и префиксируете строку символом $ . Литеральная строка должна содержать по крайней мере одну пару фигурных скобок (например {}), внутри которых используется имя переменной.
Выберите весь код, который вы написали ранее в редакторе кода C#, и нажмите клавишу DELETE или Backspace , чтобы удалить его.
Введите следующий код в редакторе кода C#:
string firstName = "Bob"; string message = $"Hello {firstName}!"; Console.WriteLine(message);Теперь выполните код. В консоли вывода появятся следующие результаты:
Hello Bob!
Использование интерполяции строк с несколькими переменными и литеральными строками
В одной строке кода можно выполнять несколько операций интерполяции.
Выберите весь код, который вы написали ранее в редакторе кода C#, и нажмите клавишу DELETE или Backspace , чтобы удалить его.
Введите следующий код в редакторе кода C#:
int version = 11; string updateText = "Update to Windows"; string message = $"{updateText} {version}"; Console.WriteLine(message);Теперь выполните код. В консоли вывода появятся следующие результаты:
Update to Windows 11
Избегайте промежуточных переменных
Как и в предыдущем упражнении, можно исключить временную переменную для хранения сообщения.
Измените код, который вы написали ранее, следующим образом:
int version = 11; string updateText = "Update to Windows"; Console.WriteLine($"{updateText} {version}!");Теперь выполните код. Результат в выходной консоли должен совпадать даже при упрощении кода:
Update to Windows 11!
Объединение дословных литералов и интерполяции строк
Предположим, что в вашем шаблоне необходимо использовать дословный литерал. Можно использовать как символ префикса дословных литералов @, так и символ интерполяции строк $ вместе.
Удалите код из предыдущих шагов и введите следующий код в редактор кода C#:
string projectName = "First-Project"; Console.WriteLine($@"C:\Output\{projectName}\Data");Теперь запустите код и увидите следующий результат.
C:\Output\First-Project\DataВ этом примере символ
$позволяет ссылаться на переменнуюprojectNameвнутри фигурных скобок, а символ@— использовать неэкранированный символ\.
Обзор
Вот что вы узнали о интерполяции строк до сих пор:
- Интерполяция строк обеспечивает улучшение сцепления строк путем уменьшения количества символов, необходимых в некоторых ситуациях.
- Можно объединить интерполяцию строк и дословные литералы, объединяя соответствующие символы и используя их в качестве префикса для шаблона строки.