每个内插字符串表达式必须具备的两个元素:
字符串文本以 $ 字符开头,后接左双引号字符。 $ 符号和引号字符之间不能有空格。 (如果希望看到包含空格会发生什么情况,请在交互式窗口中的 $ 字符后面插入一个空格,然后运行更新的代码。C# 编译器报错“意外的字符 ‘$’”。)
一个或多个内插表达式 。 左大括号和右大括号({ 和 })指示内插表达式。 可将任何返回值的 C# 表达式置于大括号内(包括 null)。
var name = "<name>";
Console.WriteLine($"Hello, {name}. It's a pleasure to meet you!");
插字符串中的内插表达式 item.Price 会解析为结果字符串中的“1.99”文本。 这是因为,当表达式结果的类型不是字符串时,会按照以下方式将其解析为字符串:
如果内插表达式的计算结果为 null,则会使用一个空字符串(“” 或 String.Empty)。
如果内插表达式的计算结果不是 null,通常会调用结果表达式的 ToString 方法。
可通过在内插表达式后接冒号(“:”)和格式字符串来指定格式字符串。 “d”是标准日期和时间格式字符串,表示短日期格式。 “C2”是标准数值格式字符串,用数字表示货币值(精确到小数点后两位)。
Console.WriteLine($"On {date:d}, the price of {item.Name} was {item.Price:C2} per {item.perPackage} items");
项目名称为左对齐,其数量为右对齐。 通过在内插表达式后面添加一个逗号(“,”)并指定“最小”字段宽度来指定对齐方式。 如果指定的值是正数,则该字段为右对齐。 如果它为负数,则该字段为左对齐。
可合并单个内插表达式中的对齐说明符和格式字符串。 为此,请先指定对齐方式,然后是冒号和格式字符串。 尝试以下示例代码,该代码使用定义的字段宽度显示三个格式化字符串:
Console.WriteLine($"[{DateTime.Now,-20:d}] Hour [{DateTime.Now,-10:HH}] [{1063.342,15:N2}] feet");