上一步使用了字符串内插将一个字符串插入到了另一字符串中。 不过,作为内插字符串表达式一部分的各个内插表达式可以是任何数据类型。 下面让我们在内插字符串中添加多种数据类型表达式的值。
在以下示例中,我们首先定义了具有 Name
、Price
和 perPackage
成员的 tuple。 在交互式窗口中运行以下代码:
C#
var item = (Name: "eggplant", Price: 1.99m, perPackage: 3);
var date = DateTime.Now;
Console.WriteLine($"On {date}, the price of {item.Name} was {item.Price:C2} per {item.perPackage} items.");
注意,内插字符串中的内插表达式 item.Price
会解析为结果字符串中的“1.99”文本。 这是因为,当表达式结果的类型不是字符串时,会按照以下方式将其解析为字符串:
-
如果内插表达式的计算结果为
null
,则会使用一个空字符串("" 或 String.Empty)。 -
如果内插表达式的计算结果不是
null
,通常会调用结果表达式的ToString
方法。
在此示例的输出中,日期过于精确(eggplant 的价格不会以秒为单位变化),且价格值没有标明货币单位。 下一步将介绍如何通过控制表达式结果的字符串表示形式来解决这些问题。
备注
此联机编码体验处于预览模式。 如果遇到问题,请在 dotnet/try 存储库上进行报告。