Бесплатный курс по csharp. Зарегистрируйтесь для отслеживания прогресса →

C#: Интерполяция

В уроке про конкатенацию перед нами стояла задача создать заголовок письма из двух констант и знаков препинания. Вы, скорее всего, решили задачу так:

var firstName = "Joffrey";
var greeting = "Hello";

Console.WriteLine(greeting + ", " + firstName + "!");
// => "Hello, Joffrey!"

Это довольно простой случай, но даже здесь нужно приложить усилия, чтобы увидеть, какая в итоге получится строка. Нужно следить за несколькими кавычками и пробелами, и без вглядывания не понять, где что начинается и кончается.

Есть другой, более удобный и изящный способ решения той же задачи — интерполяция. Вот, как это выглядит:

var firstName = "Joffrey";
var greeting = "Hello";

// Обратите внимание на знак доллара перед началом строки
Console.WriteLine($"{greeting}, {firstName}!");
// => "Hello, Joffrey!"

Мы просто создали одну строку и «вставили» в неё в нужные места другие строки с помощью знака фигурных скобок { }. Получился как будто бланк, куда внесены нужные значения. И нам не нужно больше заботиться об отдельных строках для знаков препинания и пробелов — все эти символы просто записаны в этой строке-шаблоне.

В одной строке можно делать сколько угодно подобных блоков.

Чтобы в строке начала работать интерполяция перед ее началом надо добавить знак «доллара» – $. Обратите внимание что знак стоит до открывающей кавычки, а не после неё.

Почти во всех языках интерполяция предпочтительнее конкатенации для объединения строк. Строка при этом получается склеенная, и внутри неё хорошо просматриваются пробелы и другие символы. Во-первых, интерполяция позволяет не путать строки с числами (из-за знака +), а во-вторых, так гораздо проще (после некоторой практики) понимать строку целиком.

Задание

Выведите на экран строку Do you want to eat, <name>?, где вместо <name> должна использоваться константа stark. Вывод должен получиться таким:

Do you want to eat, Arya?

Советы

Определения

  • Интерполяция - способ соединения строк через вставку значений переменных в строку-шаблон с помощью фигурных скобок. Например, $"Hi, {name}!".


Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе