如何在C#中格式化字符串,其中模式有括号?当我运行以下声明时......
String.Format("Foo { Bar={0} }", this.Bar);
...我收到一个运行时异常:
System.FormatException:输入字符串的格式不正确。
我是否应该逃避括号?怎么样?
答案 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);