在String.Format中转义大括号'{'

Phi*_*ilB 890 .net c# string

使用String.Format方法时如何显示文字大括号字符?

例:

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

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

public Int32 MyProperty { get; private set; }
Run Code Online (Sandbox Code Playgroud)

Ric*_*ook 1347

使用双括号{{}}使你的代码变成:

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; }
Run Code Online (Sandbox Code Playgroud)

  • 这个页面比MSDN更具可读性...... (165认同)
  • 当我们希望获得类似**{name}**的输出时,它需要3个花括号作为**string.Format("{{{0}}}",name)** (60认同)
  • 直接来自文档:<quote>要以格式指定单个文字大括号字符,请指定两个前导或后缀大括号字符; 也就是说,"{{"或"}}".</ quote> http://msdn.microsoft.com/en-us/library/b1csw23d.aspx (26认同)
  • 奇怪的是,Microsoft从版本4.5中删除了{{来自MSDN的注释. (8认同)
  • @JacekGorgoń任何页面都比MSDN更具可读性 (6认同)
  • 也可以在新的 C# 中使用字符串文字 `$"this will {{{something}}} 看起来像 JSON"` (5认同)
  • 对于那些想知道,文档没有删除,只是移动.它现在位于:http://msdn.microsoft.com/en-us/library/txafckwd.aspx (4认同)
  • 奇怪的是,这是第三个评论开头的话,"奇怪的是" (3认同)
  • @JacekGorgoń 这个页面也有更好的搜索引擎优化。;^) (2认同)
  • 奇怪的是,它可能也不是最后一个. (2认同)