string greeting2 = $"Hello {name} you are {age} years old.";
Console.WriteLine(greeting2);
}
В переменной greeting2
$. Кроме того, фигурные скобки по-прежнему используются для пометки заполнителя под переменную; тем не менее, вместо применения числовой метки имеется возможность указывать непосредственно переменную. Предполагаемое преимущество заключается в том, что новый синтаксис несколько легче читать в линейной манере (слева направо) с учетом того, что не требуется "перескакивать в конец" для просмотра списка значений, подлежащих вставке во время выполнения.С новым синтаксисом связан еще один интересный аспект: фигурные скобки, используемые в интерполяции строк, обозначают допустимую область видимости. Таким образом, с переменными можно применять операцию точки, чтобы изменять их состояние. Рассмотрим модификацию кода присваивания переменных greeting
greeting2:string greeting = string.Format("Hello {0} you are {1} years old.",
name.ToUpper, age);
string greeting2 = $"Hello {name.ToUpper} you are {age} years old.";
Здесь посредством вызова ToUpper
{age += 1}.Полезно также отметить, что в рамках нового синтаксиса внутри строкового литерала по-прежнему можно использовать управляющие последовательности. Таким образом, для вставки символа табуляции необходимо применять последовательность \t
string greeting = string.Format("\tHello {0} you are {1} years old.",
name.ToUpper, age);
string greeting2 = $"\tHello {name.ToUpper} you are {age} years old.";
Определение дословных строк (обновление в версии 8.0)
Когда вы добавляете к строковому литералу префикс @
string в том виде, как есть. Такая возможность наиболее полезна при работе со строками, представляющими пути к каталогам и сетевым ресурсам. Таким образом, вместо применения управляющей последовательности \\ можно поступить следующим образом:// Следующая строка воспроизводится дословно,
// так что отображаются все управляющие символы.
Console.WriteLine(@"C:\MyApp\bin\Debug");
Также обратите внимание, что дословные строки могут использоваться для предохранения пробельных символов в строках, разнесенных по нескольким строкам вывода:
// При использовании дословных строк пробельные символы предохраняются.
string myLongString = @"This is a very
very
very
long string";
Console.WriteLine(myLongString);
Применяя дословные строки, в литеральную строку можно также напрямую вставлять символы двойной кавычки, просто дублируя знак "
Console.WriteLine(@"Cerebus said ""Darrr! Pret-ty sun-sets""");
Дословные строки также могут быть интерполированными строками за счет указания операций интерполяции ($
@):string interp = "interpolation";
string myLongString2 = $@"This is a very
very
long string with {interp}";
Нововведением в версии C# 8 является то, что порядок следования этих операций не имеет значения. Работать будет либо $@
@$.Работа со строками и операциями равенства
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT