String.Format(), дающий "входная строка не в правильном формате"
Что я делаю неправильно здесь?
string tmp = @"
if (UseImageFiles) {
vCalHeader += ""<td><img onmousedown='' src= '{0}cal_fastreverse.gif' width='13px' height='9' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>\n""; //Year scroller (decrease 1 year)
calHeight += 22;
}";
string x = "xter";
tmp = string.Format(tmp, x);
Я получаю
Строка ввода не была в правильном формате
при попытке изменить {0}
. Я делаю это в С# и WinForms.
Исключение формата было необработанным
Строка ввода не была в правильном формате
Устранение неполадок, которые я получаю:
Убедитесь, что аргументы метода находятся в правильном формате. Преобразуя строку в datetime, проанализируйте строку, чтобы удалить дату, прежде чем помещать каждую переменную в объект DateTime.
Ответы
Ответ 1
string.Format()
считает, что каждый '{' или '}' является частью заполнителя (например, '{0}', который вы уже используете). Вам нужно избежать каждого литерала, удвоив его.
Итак, в вашем случае:
string tmp = @"
if (UseImageFiles) {{
...
}}";