Полагая {в дословной строке с С#
Возможный дубликат:
Как избежать скобок в строке формата в. 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}
";