* С C # 6.0 и друзьями фигурные скобки теперь не только для string.Format
! Теперь они могут обозначать интерполированные строки , где вы можете смешивать в C # объекты и код без всяких затрат string.Format
& {0} {1} {2}
.
ПРИМЕЧАНИЕ: Интерполированные строки начинаются со знака доллара : $
С ссылка на язык, ссылка на которую приведена выше :
Используется для построения строк. Интерполированная строка выглядит как
строка шаблона, содержащая интерполированные выражения.
Интерполированная строка возвращает строку, которая заменяет интерполированную
выражения, которые он содержит со своими строковыми представлениями.
Аргументы интерполированной строки легче понять, чем
составная строка формата. Например, интерполированная строка
Console.WriteLine($"Name = {name}, hours = {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».
Вы можете использовать интерполированную строку везде, где можете использовать строку
буквальный. Интерполированная строка оценивается каждый раз, когда код с
интерполированная строка выполняется. Это позволяет вам отделить
определение и оценка интерполированной строки.
Чтобы включить фигурную скобку ("{" или "}") в интерполированную строку, используйте
две фигурные скобки, "{{" или "}}".
* Как @ Бен указывает в комментарии выше . (Извините, пропустил это по дороге.)