带大括号的C#文本格式错误

带大括号的C#文本格式错误,c#,formatting,console-application,C#,Formatting,Console Application,为什么这个代码不能正常工作?我是否误解了什么 System.Console.WriteLine("{{{0:c}}}", 12323.09m); 实际产出: {c} 预期产出: {12323.09美元} 试试这个: System.Console.WriteLine(“{”+String.Format(“{0:C}”,12323.09)+“}”)问题是{{{{0:c}}}被解析为{{{..}},而不是{{/code>{/code>..}} 试一试 或参见中的类似示例(请参见大括号转义): 为什么

为什么这个代码不能正常工作?我是否误解了什么

System.Console.WriteLine("{{{0:c}}}", 12323.09m);
实际产出:

{c}

预期产出:

{12323.09美元}

试试这个:


System.Console.WriteLine(“{”+String.Format(“{0:C}”,12323.09)+“}”)

问题是
{{{{0:c}}}
被解析为
{{
{
..
}
}
,而不是
{
{/code>{/code>..
}
}

试一试

或参见中的类似示例(请参见大括号转义):


为什么您需要在货币周围添加
{}
,令人惊讶的是,这次它实际上是一个C#bug!具体看这个答案:
var currFormat=string.Format(“{0:c}”,12323.09m)
yeilds
$12323.09
@MethodMan,这不是必需的输出。我知道这就是为什么我问他是否需要输出周围的
{}
,换句话说@VincentUgenti拥有的东西足以满足他的作品,但实际上并没有回答为什么OP的代码不能按预期工作的问题。@Blorgbeard我想你在破译破译英语方面比我更专业。我想是的。一个句子中只有几个时态错误。“为什么这个代码不能正确工作?”是显而易见的“解码”。
System.Console.WriteLine("{{{0:c}{1}", 12323.09m, '}');
int value = 6324;
string output = string.Format("{0}{1:D}{2}", 
                              "{", value, "}");
Console.WriteLine(output);