string.Format () fornecendo “A string de entrada não está no formato correto”


115

O que eu faço de errado aqui?

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);

eu recebo

A string de entrada não estava no formato correto

ao tentar mudar {0}. Estou fazendo isso em C # e WinForms.

A exceção de formato não foi tratada
A string de entrada não estava no formato correto

Dicas para solucionar problemas que recebo:

Certifique-se de que os argumentos do seu método estejam no formato correto. Ao converter uma string em datetime, analise a string para tirar a data antes de colocar cada variável no objeto DateTime.

Respostas:


303

string.Format()considera cada '{' ou '}' como parte de um espaço reservado (como '{0}' que você já usa). Você precisa escapar de cada ocorrência literal duplicando-a.

Então, no seu caso:

 string tmp = @"
    if (UseImageFiles) {{
        ...
    }}";

4
Obrigado! A mensagem de erro "A string de entrada não estava no formato correto" não foi útil para mim. Achei que um dos meus parâmetros fosse nulo ou algo assim.
elegante de
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.