Упражнение. Объединение строк с помощью интерполяции строк
Хотя конкатенация строк проста и удобна, интерполяция строк популярнее в ситуациях, когда необходимо объединить множество строковых литералов и переменных в одно отформатированное сообщение.
Что такое интерполяция строк?
Интерполяция строк объединяет несколько значений в одну литеральную строку с помощью шаблона и выражений интерполяции. Выражение интерполяции указывается символом открывающей и закрывающей фигурной скобки{ }
. Можно поместить любое выражение C#, возвращающее значение внутри фигурных скобок. Литеральная строка преобразуется в шаблон, если он имеет префикс $
.
Иными словами, вместо написания следующей строки кода:
string message = greeting + " " + firstName + "!";
Можно написать более краткую строку кода:
string message = $"{greeting} {firstName}!";
В этом простом примере вы экономите несколько нажатий клавиш. Можно представить, насколько более краткой будет интерполяция строк в более сложных операциях. Более того, многие считают синтаксис интерполяции строк более понятным и удобочитаемым.
В следующем упражнении вы перезаписываете предыдущие сообщения с помощью интерполяции строк.
Использование интерполяции строк для объединения литеральной строки и значения переменной
Чтобы выполнить интерполяцию двух строк вместе, создайте литеральную строку и добавьте перед строкой символ $
. Литеральная строка должна содержать по крайней мере один набор фигурных скобок {}
, и внутри этих символов необходимо указать имя переменной.
Выделите весь код в редакторе .NET и нажмите клавишу DELETE или BACKSPACE, чтобы удалить его.
Введите следующий код в редакторе .NET:
string firstName = "Bob"; string message = $"Hello {firstName}!"; Console.WriteLine(message);
Теперь выполните код. В консоли вывода появятся следующие результаты:
Hello Bob!
Использование интерполяции строк с несколькими переменными и литеральными строками
В одной строке кода можно выполнять несколько операций интерполяции.
Измените код, который вы написали ранее, следующим образом:
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!
Объединение подробных литералов и интерполяции строк
Предположим, что в шаблоне необходимо использовать буквальный литерал. Можно одновременно использовать символ @
для префикса буквального литерала и $
— символ интерполяции строки.
Удалите код из предыдущих шагов и введите следующий код в редактор .NET:
string projectName = "First-Project"; Console.WriteLine($@"C:\Output\{projectName}\Data");
После выполнения кода вы увидите приведенный ниже результат.
C:\Output\First-Project\Data
В этом примере
$
символ позволяет ссылаться наprojectName
переменную внутри фигурных скобок, а символ@
позволяет использовать неискаченный\
символ.
Кратко
Вот что вы узнали о интерполяции строк до сих пор:
- Интерполяция строк улучшает конкатенацию строк за счет уменьшения количества символов, необходимых в некоторых ситуациях.
- Можно сочетать интерполяцию строк и буквальные литералы, сочетая их символы и используя их в качестве префикса для шаблона строки.