string.Format () memberikan "Input string tidak dalam format yang benar"

115

Apa yang saya lakukan salah di sini?

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

saya mendapat

String masukan tidak dalam format yang benar

ketika mencoba untuk berubah {0}. Saya melakukan ini di C # dan WinForms.

Pengecualian Format tidak ditangani.
String masukan tidak dalam format yang benar

Tips pemecahan masalah yang saya dapatkan:

Pastikan argumen metode Anda dalam format yang benar. Saat mengonversi string ke datetime, parse string untuk mengambil tanggal sebelum meletakkan setiap variabel ke dalam objek DateTime.

Tuan Rendezvous
sumber

Jawaban:

303

string.Format()menganggap setiap '{' atau '}' sebagai bagian dari placeholder (seperti '{0}' yang sudah Anda gunakan). Anda perlu menghindari setiap kejadian literal dengan menggandakannya.

Jadi dalam kasus Anda lakukan:

 string tmp = @"
    if (UseImageFiles) {{
        ...
    }}";
Christian.K
sumber
4
Terima kasih! Pesan kesalahan "String masukan tidak dalam format yang benar" sama sekali tidak membantu saya. Saya pikir salah satu parameter saya adalah null atau sesuatu.
styfle