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.

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) {{
        ...
    }}";

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.