我已经多次偶然发现插入字符串的一个问题。
考虑以下情况:
double number = 123.4567;
var str = $"{{{number:F2}}}"; //I want to get "{123.45}"
Console.WriteLine(str); // Will print "{F2}"
一开始有点令人惊讶,但一旦你意识到大括号是如何配对的,这就很有意义了。后面的两个大括号是内插字符串中单个花括号的转义序列。因此,内插表达式的左括号与字符串中的最后一个花括号配对。
___pair____
| |
$"{{{number:F2}}}";
现在您可以执行以下操作来打破转义序列:
var str = $"{{{number:F2} }}"; // This will be "{123.45 }"
请注意此方法添加到输出中的空格字符。(不理想)
我的问题:
假设我想使用单个内插字符串来准确获得输出“{123.45}”
如果不做如下骇人听闻的事情,这完全可能吗?
var s = $"{{{number:F2}{'}'}";
holdtom
相关分类