如何对字符串文字使用字符串插值?

How do I use string interpolation with string literals?

我正在尝试做类似

的事情
string heading = $"Weight in {imperial?"lbs":"kg"}"

这是否可行?

您应该添加 (),因为字符串可以包含使用 ::

的格式
string heading = $"Weight in {(imperial ? "lbs" : "kg")}";

内插字符串可以包含格式定义,这些格式定义与变量名之间用冒号分隔。

string formatted = $"{foo:c5}"; // 5 decimal places

由于条件运算符 (?:) 也使用冒号,因此您必须使用大括号向编译器表明您不需要格式说明符:

string heading = $"Weight in {(imperial?"lbs":"kg")}";