在String.Format中如何转义花括号'{'

1051

当使用String.Format方法时,如何显示一个花括号字符?

例如:

sb.AppendLine(String.Format("public {0} {1} { get; private set; }", 
prop.Type, prop.Name));

我希望输出的结果看起来像这样:

public Int32 MyProperty { get; private set; }
1个回答

1594

使用双括号{{}},这样你的代码就变成了:

sb.AppendLine(String.Format("public {0} {1} {{ get; private set; }}", 
prop.Type, prop.Name));

// For prop.Type of "Foo" and prop.Name of "Bar", the result would be:
// public Foo Bar { get; private set; }

34
直接从文档中摘录:<quote>为了在格式中指定单个大括号字符,请指定两个前导或尾随大括号字符;也就是说,"{{" 或 "}}"。</quote> http://msdn.microsoft.com/en-us/library/b1csw23d.aspx - Ben Voigt
9
有趣的是,自4.5版本起,微软在MSDN中删除了{{标记。 - Olivier
1
@Olivier 当我在针对.NET 4.5时使用字符串中的{}仍然会出现FormatException错误;而{{}}则可以正常工作。 - Danny Beckett
4
对于那些想知道的人,文档并没有被删除,只是移动了位置。现在它在这里:http://msdn.microsoft.com/en-us/library/txafckwd.aspx。 - Jason
5
新版的C#中,使用字符串字面值也可以这样编写:$"this will {{{something}}} to look like JSON" - workabyte
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接