string.Format (), давая "Входная строка не в правильном формате" - PullRequest
108 голосов
/ 05 августа 2011

Что я здесь не так делаю?

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}.Я делаю это в C # и WinForms.

Исключение формата не обработано
Введена неверная строка ввода

Устранение неполадок, которые я получил:

Убедитесь, что аргументы вашего метода имеют правильный формат.При преобразовании строки в datetime, перед тем как поместить каждую переменную в объект DateTime, проанализируйте строку для извлечения даты.

1 Ответ

282 голосов
/ 05 августа 2011

string.Format() считает каждое '{' или '}' частью заполнителя (например, {0}, который вы уже используете). Вам нужно избежать каждого буквального вхождения, удваивая его.

Так что в вашем случае сделайте:

 string tmp = @"
    if (UseImageFiles) {{
        ...
    }}";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...