我现在多次偶然发现插值字符串的一个问题.
考虑以下情况:
double number = 123.4567;
var str = $"{{{number:F2}}}"; //I want to get "{123.45}"
Console.WriteLine(str); // Will print "{F2}"
Run Code Online (Sandbox Code Playgroud)
一开始有点令人惊讶但是一旦你意识到花括号是如何配对的,这是有道理的.以下两个花括号是插值字符串中单个卷曲的转义序列.因此插值表达式的左括号与字符串中的最后一个卷曲配对.
___pair____
| |
$"{{{number:F2}}}";
Run Code Online (Sandbox Code Playgroud)
现在,您可以执行以下操作来中断转义序列:
var str = $"{{{number:F2} }}"; // This will be "{123.45 }"
Run Code Online (Sandbox Code Playgroud)
请注意此方法添加到输出的空格字符.(不理想)
我的问题:
假设我想使用单个插值字符串来准确输出"{123.45}"
这样做是否可能不做如下的hackish?
var s = $"{{{number:F2}{'}'}";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
379 次 |
| 最近记录: |