* В C# 6.0 и его друзьях фигурные скобки больше не используются только для string.Format
! Теперь они могут обозначать интерполированные строки, где вы можете смешивать объекты и код C# без всех накладных расходов string.Format
и {0} {1} {2}
.
ПРИМЕЧАНИЕ. Интерполированные строки начинаются со знака доллара: $
С справочной страницы по языку, указанной выше. :
Используется для построения строк. Интерполированная строка выглядит как шаблонная строка, содержащая интерполированные выражения. Интерполированная строка возвращает строку, которая заменяет содержащиеся в ней интерполированные выражения их строковыми представлениями.
Аргументы интерполированной строки легче понять, чем строку составного формата. Например, интерполированная строка
Console.WriteLine($"Name = {name}, hours = {hours:hh}");
содержит два интерполированных выражения: '{name}' и '{hours:hh}'. Эквивалентная строка составного формата:
Console.WriteLine("Name = {0}, hours = {1:hh}", name, hours);
Примечание. Если вы не знали, Console.WriteLine
имеет своего рода встроенный string.Format
, который может быть неочевидным в приведенном выше примере, если вы этого не понимаете.
Если вы хотите получить ту же строку, не полагаясь на волшебство Console.WriteLine, может быть проще прочитать, что это...
string message = $"Name = {name}, hours = {hours:hh}"; // interpolated
... эквивалентно...
string message = string.Format("Name = {0}, hours = {1:hh}", name, hours); // old school
Структура интерполированной строки:
$"<text> {<interpolated-expression> [,<field-width>] [<:format-string>] } <text> ..."
где:
- field-width — целое число со знаком, указывающее количество символов в поле. Если он положительный, поле выравнивается по правому краю; если отрицательный, выравнивание по левому краю.
- format-string – это строка формата, соответствующая типу форматируемого объекта. Например, для значения DateTime это может быть строка стандартного формата даты и времени, например "D" или "d".
Вы можете использовать интерполированную строку везде, где можно использовать строковый литерал. Интерполированная строка оценивается каждый раз, когда выполняется код с интерполированной строкой. Это позволяет вам разделить определение и оценку интерполированной строки.
Чтобы включить фигурную скобку ("{" или "}") в интерполированную строку, используйте две фигурные скобки, "{{" или "}}".
* Как указывает @Ben в комментарии выше. (Извините, пропустил это по пути.)
person
ruffin
schedule
07.06.2017