左大括號和右大括號被解釋為格式項的開始和結束。 因此,必須使用轉義序列顯示文本左大括號或右大括號。 在固定文本中指定兩個左大括號 ("{{") 以顯示一個左大括號 ("{"),或指定兩個右大括號 ("}}") 以顯示一個右大括號 ("}")。 按照在格式項中遇到大括號的順序依次解釋它們。 不支持解釋嵌套的大括號。
解釋轉義大括號的方式會導致意外的結果。 例如,考慮要顯示一個左大括號、一個設置為十進制數格式的數值和一個右大括號的格式項“{{{0:D}}}”。 但是,實際是按照以下方式解釋該格式項:
-
前兩個左大括號 ("{{") 被轉義,生成一個左大括號。
-
之后的三個字符 ("{0:") 被解釋為格式項的開始。
-
下一個字符 ("D") 將被解釋為 Decimal 標准數值格式說明符,但后面的兩個轉義大括號 ("}}") 生成單個大括號。 由於得到的字符串 ("D}") 不是標准數值格式說明符號,所以得到的字符串會被解釋為用於顯示字符串“D}”的自定義格式字符串。
-
最后一個大括號 ("}") 被解釋為格式項的結束。
-
顯示的最終結果是字符串“{D}”。 不會顯示本來要設置格式的數值。
在編寫代碼時,避免錯誤解釋轉義大括號和格式項的一種方法是單獨設置大括號和格式項的格式。 也就是說,在第一個格式設置操作中顯示文本左大括號,在下一操作中顯示格式項的結果,然后在最后一個操作中顯示文本右大括號。 下面的示例闡釋了這種方法。
int value = 6324; string output = string.Format("{0}{1:D}{2}", "{", value, "}"); Console.WriteLine(output); // The example displays the following output: // {6324}