web-dev-qa-db-fra.com

string.Format () donnant "La chaîne d'entrée n'est pas au format correct"

Qu'est-ce que je fais mal ici?

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

Je reçois

La chaîne d'entrée n'était pas au format correct

en essayant de changer {0}. Je le fais dans C # et WinForms.

Exception de format non gérée
La chaîne d'entrée n'était pas au format correct

Dépannez les astuces que je reçois:

Assurez-vous que les arguments de votre méthode sont au bon format. Lors de la conversion d'une chaîne en date/heure, analysez la chaîne pour extraire la date avant de placer chaque variable dans l'objet DateTime.

108
Mr.Rendezvous

string.Format() considère que chaque '{' ou '}' fait partie d'un espace réservé (comme '{0}' que vous utilisez déjà). Vous devez échapper à chaque occurrence littérale en la doublant.

Alors dans votre cas, faites:

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