为什么这个格式字符串不起作用?

时间:2013-06-13 00:49:04

标签: .net vb.net

我正在尝试使用包含}作为文字的格式字符串,但它没有像我预期的那样工作

Response.Write(String.Format("{0:d}}}", 6))

输出:d}

我期待的输出是:

6}

出于某种原因,如果}}出现在非转义的}。

旁边,则无法正确转义

此外,这行代码实际上会引发异常!

Response.Write(String.Format("{0:D}}}", SqlDbType.Int))

预期的输出是:8}(因为SqlDbType.Int的枚举常量是8)

现实代码中出现了这个问题 - 上面的例子只是为了说明这一点。我该如何格式化包含花括号的文本字符串?

2 个答案:

答案 0 :(得分:3)

有一个“bug”。你需要说:

String.Format("{0}{1:d}{2}", "{", 6, "}")

答案 1 :(得分:1)

String.Format("{0:d'}'}", 6)    in C#

或以下内容可能适用于VB.Net ......

String.Format("{0:d\}}", 6)    in VB.net