C#退出花括号不使用格式修改器?

C#退出花括号不使用格式修改器?,c#,C#,我知道我们可以用{{和}避开C#中的花括号。但是如果它们正好在格式修改器之后(比如{0:F6}),它们似乎就不能很好地工作 这就是C#处理花括号的方式,这是众所周知的。 您可以这样逃避它(例如,有不同的方法): 试试这个: String.Format("{0}{1:F6}{2}", "{",3.14, "}") 为什么不干脆str=“{”+string.Format(“{0:F6}”,3.14)+“}”@Pikoh我认为问题更多的是关于“这是c#中的预期行为吗?”blas3nik的回答解

我知道我们可以用
{{
}
避开C#中的花括号。但是如果它们正好在格式修改器之后(比如
{0:F6}
),它们似乎就不能很好地工作

这就是C#处理花括号的方式,这是众所周知的。

您可以这样逃避它(例如,有不同的方法):

试试这个:

 String.Format("{0}{1:F6}{2}", "{",3.14, "}") 

为什么不干脆
str=“{”+string.Format(“{0:F6}”,3.14)+“}”@Pikoh我认为问题更多的是关于“这是c#中的预期行为吗?”blas3nik的回答解释了原因;另请参见“”中的MSDN“转义大括号”,其中有明确的说明;特别是“不支持解释嵌套大括号”。pi=~3.14159265。。。所以您需要3.141593kludge
str=“{”+string.Format(“{0:F6}”,3.14)+“}”
Console.WriteLine(str)谢谢你的链接-如果我遇到这个,一定要记住。如果可以的话,我会投两次赞成票。你的答案是正确的(+1),但我肯定会称这是一个微软从未修复过的错误。@xxbbcc这不是一个错误
F6}
作为变量的格式。顺便说一句,如果他们不贪心,那就好了;)@M.kazemAkhgary是的,我读了这篇链接文章,我的意思是实现的贪婪是bug。
 var str = string.Format("{0}{1:F6}{2}", "{", 3.14, "}");
 Console.WriteLine(str);
 String.Format("{0}{1:F6}{2}", "{",3.14, "}")