string.Format()给出“输入字符串的格式不正确”


115

我在这里做什么错?

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

我懂了

输入的字符串格式不正确

试图改变的时候{0}。我在C#和WinForms中这样做。

未处理格式异常
输入字符串格式不正确

我得到的疑难解答提示:

确保您的方法参数格式正确。将字符串转换为datetime时,在将每个变量放入DateTime对象之前,分析该字符串以取出日期。

Answers:


303

string.Format()认为每个'{'或'}'是占位符的一部分(例如您已经使用的'{0}')。您需要通过将每个文字出现加倍来对其进行转义。

因此,就您而言:

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

4
谢谢!错误消息“输入字符串格式不正确”对我完全没有帮助。我以为我的参数之一为null或其他内容。
styfle 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.