在String中使用括号时:“输入字符串的格式不正确”

时间:2013-02-13 15:12:29

标签: c# string c#-4.0 string-formatting

如何在C#中格式化字符串,其中模式有括号?当我运行以下声明时......

String.Format("Foo { Bar={0} }", this.Bar);

...我收到一个运行时异常:

  

System.FormatException:输入字符串的格式不正确。

我是否应该逃避括号?怎么样?

3 个答案:

答案 0 :(得分:12)

通过将{{}}

等括号加倍来转义括号
String.Format("Foo {{ Bar={0} }}", this.Bar);

答案 1 :(得分:4)

MSDN在文章Composite Formatting - Escaping Braces

中解释了这种情况
  

打开和关闭括号被解释为开始和结束a   格式项。因此,您必须使用转义序列来显示   一个字面的开口支撑或关闭支撑。指定两个开口括号   (“{{”)在固定文本中显示一个左括号(“{”)或两个   关闭大括号(“}}”)以显示一个右大括号(“}”)。

所以这应该是你的解决方案

String.Format("Foo {{ Bar={0} }}", this.Bar);

答案 2 :(得分:4)

尝试使用双花括号,如下所示:

String.Format("Foo {{ Bar={0} }}", this.Bar);

看起来已经回答:Escape curly brace '{' in String.Format