string.Format () che dà "La stringa di input non è nel formato corretto"


115

Cosa sbaglio qui?

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

ottengo

La stringa di input non era nel formato corretto

quando si cerca di cambiare {0}. Lo sto facendo in C # e WinForms.

L'eccezione di formato non è stata gestita La
stringa di input non era nel formato corretto

Suggerimenti per la risoluzione dei problemi che ricevo:

Assicurati che gli argomenti del tuo metodo siano nel formato corretto. Quando si converte una stringa in datetime, analizza la stringa per estrarre la data prima di inserire ogni variabile nell'oggetto DateTime.

Risposte:


303

string.Format()considera ogni "{" o "}" come parte di un segnaposto (come "{0}" che già utilizzi). È necessario sfuggire a ogni occorrenza letterale raddoppiandola.

Quindi nel tuo caso fai:

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

4
Grazie! Il messaggio di errore "La stringa di input non era nel formato corretto" non mi è stato affatto utile. Pensavo che uno dei miei parametri fosse nullo o qualcosa del genere.
stile
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.