Полагая {в дословной строке с С#

Возможный дубликат:
Как избежать скобок в строке формата в. Net

Как поместить { или } в строку verbatim в С#?

using System;

class DoFile {

    static void Main(string[] args) {
        string templateString = @"
        \{{0}\}
        {1}
        {2}
        ";
        Console.WriteLine(templateString, "a", "b", "c");
    }
}

Я получаю ошибку, когда я использую '{' или '}' в текстовой строке, я предполагаю, потому что '{' или '}' используется для маркировки параметров, например {0}, {1}, {2}. \{ не работает.

Unhandled Exception: System.FormatException: Input string was not in a correct format.
  at System.String.ParseFormatSpecifier (System.String str, System.Int32& ptr, System.Int32& n, System.Int32& width, System.Boolean& left_align, System.String& format) [0x00000] in <filename unknown>:0 
  at System.String.FormatHelper (System.Text.StringBuilder result, IFormatProvider provider, System.String format, System.Object[] args) [0x00000] in <filename unknown>:0 

Ответ 1

Вам просто нужно бежать с двойными фигурными скобками.

{{ или }} соответственно.

Что-то вроде ниже

string.Format("This is a format string for {0} with {{literal brackets}} inside", "test");

Это строка формата для тестирования с {буквальными скобками} внутри

Ответ 2

Вы помещаете два типа таких {{ или }}.

Ответ 3

Нет ничего особенного в размещении { и } в строке, они не должны быть экранированы. Кроме того, escape-символ \ не влияет на строку с разделителями @.

Чтобы использовать литералы { и } в формате для метода String.Format, вы удваиваете их. Итак, ваша строка формата будет:

string templateString = @"
    {{{0}}}
    {1}
    {2}
    ";