string.Format () "Girdi dizesi doğru biçimde değil" verir


115

Burada neyi yanlış yapıyorum?

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

alırım

Giriş dizesi doğru biçimde değildi

değişmeye çalışırken {0}. Bunu C # ve WinForms'da yapıyorum.

Biçim İstisnası işlenmedi
Giriş dizesi doğru biçimde değildi

Aldığım sorun giderme ipuçları:

Yöntem argümanlarınızın doğru biçimde olduğundan emin olun. Bir dizeyi tarih saatine dönüştürürken, her değişkeni DateTime nesnesine koymadan önce tarihi çıkarmak için dizeyi ayrıştırın.

Yanıtlar:


303

string.Format()her '{' veya '}' bir yer tutucunun parçası olarak kabul eder (zaten kullandığınız '{0}' gibi). Her bir kelimeyi ikiye katlayarak kaçmanız gerekir.

Yani sizin durumunuzda şunları yapın:

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

4
Teşekkür ederim! "Giriş dizesi doğru formatta değildi" hata mesajı bana hiç yardımcı olmadı. Parametrelerimden birinin boş falan olduğunu düşündüm.
styfle
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.