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

时间:2011-08-05 04:32:58

标签: c# winforms string

我在这里做错了什么?

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对象之前取出日期。

1 个答案:

答案 0 :(得分:281)

string.Format()认为每个'{'或'}'都是占位符的一部分(例如您已使用的'{0}')。你需要通过加倍来逃避每个字面值。

所以在你的情况下做:

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